在libpthread.so中运行节点时出现分段错误

Wes*_*ham 5 centos segmentation-fault node.js

我一直在节点中编写一个守护进程(由托管forever),并注意到工作进程有时会随机死掉.我添加了一个segault处理程序来查看是什么,但典型的堆栈跟踪是......无益的?

PID 9949 received SIGSEGV for address: 0x0
/home/wesley/app/node_modules/segfault-handler/build/Release/segfault-handler.node(+0xf60)[0x7f11dd3d8f60]
/lib64/libpthread.so.0[0x354760f710]
[0x3d3c10b0d799]
Run Code Online (Sandbox Code Playgroud)

一旦我收到失败的跟踪,相反:

PID 5820 received SIGSEGV for address: 0x18
/home/wesley/app/node_modules/segfault-handler/build/Release/segfault-handler.node(+0xf60)[0x7fdfab749f60]
/lib64/libpthread.so.0[0x354760f710]
/usr/bin/node(_ZN4node6Buffer14MakeFastBufferERKN2v89ArgumentsE+0x168)[0x426778]
[0x1d06e36ccdfb]
Run Code Online (Sandbox Code Playgroud)

其中仍然显示最顶层的呼叫libpthread.so(虽然在节点正确的呼叫之前.)

我发现很难相信segfault来自libpthread.so(或......无处?),但它看起来像什么?过去有没有人有这样的经历?有没有人有进一步调试的提示?

我在CentOS 6.5上运行节点v0.10.29(来自epel存储库),以供参考.

小智 0

两条轨迹均显示空指针引用。很可能是 Node 中的错误,因此如果可能的话请迁移到更新版本的 v0.10。

如果没有正确的 gdb 回溯,就不可能判断谁错了。