Node版本为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
我运行了一段代码,使用相同的 --stack-size=60000 参数,但出现了 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory 错误,并且没有得到 Segmentation fault 错误提示。
因此,我得出结论,CALL_AND_RETRY_LAST
与递归栈大小无关。
我该如何解决这个问题?我相信我的计算机上有足够的可用内存来成功完成这个任务。
在 stackoverflow 上有类似的问题,但这些问题都不涉及 CALL_AND_RETRY_LAST
,所以我创建了这个单独的问题。