节点版本号为v0.11.13
内存使用在崩溃期间根据sudo顶部不超过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参数,并且没有分割错误。
因此,我得出结论,CALL_AND_RETRY_LAST与递归堆栈大小没有任何共同之处。
我怎么解决这个问题呢?我相信我的电脑上有足够的空闲内存来成功完成这项任务。
在stackoverflow上也有类似的问题,但这些问题都不是关于CALL_AND_RETRY_LAST的,这就是为什么我创建了单独的问题。