0

我在 Yocto Linux 系统(处理器:Intel Quark® x1020 400 MHz)上运行 node-red。

我的应用程序包括一个 S7 节点 (node-red-contrib-s7) 来读取 PLC 的值(目前这是一个测试值,每 15 秒从真变为假,反之亦然)。OPCUA-Server-Node (node-red-contrib-opcua) 通过创建布尔变量进行初始化,并创建 OPCUA-Server 以通过 OPC 协议进一步读取数据。OPC 客户端将输入的真/假值从 PLC 写入 OPCUA 服务器。

在未指定的时间段(大约 20-40 分钟)之后,节点红色崩溃。

Welcome to Node-RED
===================

22 Jun 07:53:37 - [info] Node-RED version: v0.15.2
22 Jun 07:53:37 - [info] Node.js  version: v6.9.2
22 Jun 07:53:37 - [info] Linux 4.4.18-yocto-standard ia32 LE
22 Jun 07:53:52 - [info] Loading palette nodes
22 Jun 07:55:13 - [info] Dashboard version 2.1.0 started at /ui
22 Jun 07:55:14 - [warn] ------------------------------------------------------
22 Jun 07:55:14 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
22 Jun 07:55:14 - [warn] ------------------------------------------------------
22 Jun 07:55:14 - [info] Settings file  : /home/root/.node-red/settings.js
22 Jun 07:55:14 - [info] User directory : /home/root/.node-red
22 Jun 07:55:14 - [info] Flows file     : /home/root/.node-red/flows_iot2000.json
22 Jun 07:55:15 - [info] Server now running at http://127.0.0.1:1880/
22 Jun 07:55:15 - [debug] red/runtime/nodes/credentials.load : no user key present
22 Jun 07:55:15 - [debug] red/runtime/nodes/credentials.load : using default key
22 Jun 07:55:15 - [info] Starting flows
22 Jun 07:55:35 - [info] Started flows
22 Jun 07:55:36 - [info] [debug:9e445757.340408]
{ opcuaCommand: 'addVariable' }
22 Jun 07:56:39 - [info] [debug:7f92b9a0.ab1b8] true
22 Jun 07:56:39 - [error] [OpcUa-Client:WRITE ] WRITE  OPC UA connection error: connect ECONNREFUSED 127.0.0.1:53880
22 Jun 07:56:39 - [info] [OpcUa-Client:WRITE ] TESTLOG: RESET CLIENT NACH CONNECTION ERROR
 Bad Session in  _on_ActivateSessionRequest 030691667bf38f6e20b540681a3c7a3e
22 Jun 07:57:29 - [error] [s7 endpoint:ac2f8250.edec] Failure (Bad values)
22 Jun 07:57:31 - [info] [debug:7f92b9a0.ab1b8] false
22 Jun 07:57:37 - [info] [debug:7f92b9a0.ab1b8] true
 Timeout .... waiting for response for  OpenSecureChannelRequest { /*RequestHeader*/
 authenticationToken           /* NodeId                           */: ns=0;i=0
 timeStamp                     /* UtcTime                          */: 2017-06-22T07:56:39.362Z
 requestHandle                 /* IntegerId                        */: 1               0x1
 returnDiagnostics             /* UInt32                           */: 0               0x0
 auditEntryId                  /* UAString                         */: null
 timeoutHint                   /* UInt32                           */: 0               0x0
 additionalHeader              /* ExtensionObject                  */: null
};
 Timeout .... waiting for response for  CloseSecureChannelRequest { /*RequestHeader*/
 authenticationToken           /* NodeId                           */: ns=0;i=0
 timeStamp                     /* UtcTime                          */: 2017-06-22T07:56:39.667Z
 requestHandle                 /* IntegerId                        */: 2               0x2
 returnDiagnostics             /* UInt32                           */: 0               0x0
 auditEntryId                  /* UAString                         */:
 timeoutHint                   /* UInt32                           */: 0               0x0
 additionalHeader              /* ExtensionObject                  */: null
};
22 Jun 07:57:43 - [error] [s7 endpoint:ac2f8250.edec] Failure (Bad values)
22 Jun 07:57:43 - [error] [OpcUa-Client:WRITE ] WRITE  OPC UA connection error: Transaction has timed out
22 Jun 07:57:43 - [info] [OpcUa-Client:WRITE ] TESTLOG: RESET CLIENT NACH CONNECTION ERROR
22 Jun 07:57:56 - [info] [debug:7f92b9a0.ab1b8] false
22 Jun 07:58:06 - [info] [debug:9e445757.340408]
{ opcuaCommand: 'addVariable' }
22 Jun 07:58:08 - [info] [debug:7f92b9a0.ab1b8] true
22 Jun 07:58:23 - [info] [debug:7f92b9a0.ab1b8] false
22 Jun 07:58:39 - [info] [debug:7f92b9a0.ab1b8] true
22 Jun 07:58:55 - [info] [debug:7f92b9a0.ab1b8] false
22 Jun 07:59:10 - [info] [debug:7f92b9a0.ab1b8] true
...
...
...
22 Jun 08:17:57 - [info] [debug:7f92b9a0.ab1b8] true
22 Jun 08:18:13 - [info] [debug:7f92b9a0.ab1b8] false
22 Jun 08:18:28 - [info] [debug:7f92b9a0.ab1b8] true
22 Jun 08:18:44 - [info] [debug:7f92b9a0.ab1b8] false
22 Jun 08:18:59 - [info] [debug:7f92b9a0.ab1b8] true


#
# Fatal error in , line 0
# unreachable code
#

==== C stack trace ===============================

 1: V8_Fatal
 2: 0x891e307
 3: v8::internal::LCodeGenBase::GenerateBody()
 4: v8::internal::LCodeGen::GenerateCode()
 5: v8::internal::LChunk::Codegen()
 6: v8::internal::OptimizedCompileJob::GenerateCode()
 7: v8::internal::Compiler::FinalizeOptimizedCompileJob(v8::internal::OptimizedCompileJob*)
 8: v8::internal::OptimizingCompileDispatcher::InstallOptimizedFunctions()
 9: v8::internal::StackGuard::HandleInterrupts()
10: v8::internal::Runtime_StackGuard(int, v8::internal::Object**, v8::internal::Isolate*)
11: 0x3dd0a07e
12: 0x3c43c8df
13: 0x3dd1fd9e
14: 0x3dd1bd23
15: 0x85da06a
16: v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*)
17: v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
18: v8::Function::Call(v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
19: node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*)
20: 0x89a5cbb
21: 0x89f1d30
22: uv_run
23: node::Start(int, char**)
24: main
25: __libc_start_main
Illegal instruction

我想了解为什么节点会随机崩溃。有人可以帮忙吗?

4

1 回答 1

0

Illigal instruction错误意味着您拥有的 node.js 版本中的 JIT 编译器生成了一条指令,该指令在您使用的英特尔 Quark 处理器上不可用。

最好的办法是确保系统设置正确,以便在发生故障时生成完整的核心文件,然后在此处针对 node.js 项目提出问题

于 2017-06-22T09:48:11.787 回答