2017-06-22 62 views
0

我在Yocto Linux系统(处理器:IntelQuark®x1020 400 MHz)上运行节点红色。V8_致命错误 - 无法访问的代码0x891e307

我的应用程序包含一个S7节点(node-red-contrib-s7)来读取PLC的值(这是一个每15秒从真到假更改的测试值,反之亦然)。 通过创建一个布尔变量来初始化一个OPCUA服务器节点(节点红色contrib-opcua)并创建一个OPCUA服务器以通过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 

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

回答

0

Illigal instruction错误意味着您使用的node.js版本中的JIT编译器生成了您正在使用的Intel Quark处理器上不可用的指令。

最好的办法是,以确保系统的设置是否正确产生的故障时的完整核心文件,然后抛出一个问题,针对Node.js的项目here

+0

所以,你会排除这个错误是由于使用节点红色而是系统相关的错误? 如何生成完整的核心文件? – scsi1042

+0

解释型语言永远不应该导致运行时崩溃,尤其是不会这样。核心文件的创建通常由当前shell的ulimits控制,我建议你探索一下你设置的默认值 – hardillb

+0

这对我来说有点奇怪。因为当我仅使用s7节点时没有崩溃。当我运行OPC UA服务器时,它会崩溃。因此,我将此节点视为此问题的首要原因。 程序(及其opcua节点)是否会导致问题,从而导致非法指令? – scsi1042