节点版本为 v0.11.13
崩溃期间的内存使用情况sudo top
未超出3%
产生此错误的代码:
var request = require('request')
var nodedump = require('nodedump')
request.get("http://pubapi.cryptsy.com/api.php?method=marketdatav2",function(err,res)
{
var data
console.log( "Data received." );
data = JSON.parse(res.body)
console.log( "Data parsed." );
data = nodedump.dump(data)
console.log( "Data dumped." );
console.log( data )
})
要检查是否存在递归堆栈大小问题,我使用--stack-size = 60000参数运行了下一个代码
var depth = 0;
(function recurse() {
// log at every 500 calls
(++depth % 500) || console.log(depth);
recurse();
})();
并得到了
264500
Segmentation fault
然后,我运行了发生致命错误的代码:CALL_AND_RETRY_LAST分配失败-使用相同的--stack-size = 60000参数处理内存不足,并且没有得到Segmentation fault
。
因此,我得出结论CALL_AND_RETRY_LAST
与递归堆栈大小没有共同之处。
我该如何解决这个问题?我相信我的计算机上有足够的可用内存来成功完成此任务。
关于stackoverflow也有类似的问题,但是这些问题都不是CALL_AND_RETRY_LAST
我创建单独问题的原因。
一种替代解决方案是禁用AOT编译器: