Wersja węzła to v0.11.13
Zużycie pamięci podczas awarii zgodnie z tym, że się sudo topnie podnosi3%
Kod odtwarzający ten błąd:
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 )
})
Aby sprawdzić, czy to problem ze stosem rekurencyjnym, uruchomiłem następny kod z parametrem --stack-size = 60000
var depth = 0;
(function recurse() {
// log at every 500 calls
(++depth % 500) || console.log(depth);
recurse();
})();
i mam
264500
Segmentation fault
Potem uruchomiłem kod, który daje mi FATAL ERROR: CALL_AND_RETRY_LAST Alokacja nie powiodła się - proces nie ma pamięci o tym samym parametrze --stack-size = 60000 i nie ma go Segmentation fault.
Stwierdzam więc, że CALL_AND_RETRY_LASTnie ma nic wspólnego z rozmiarem stosu rekurencyjnego.
Jak mogę rozwiązać ten problem? Uważam, że na moim komputerze jest wystarczająca ilość wolnej pamięci, aby pomyślnie zakończyć to zadanie.
Istnieją podobne pytania na temat przepływu stosu, ale żadne z tych pytań nie dotyczy CALL_AND_RETRY_LASTtego, dlatego stworzyłem osobne pytanie.