Mein Node.js-Skript stürzt wegen eines geworfenen ENOMEM (nicht genügend Arbeitsspeicher) errnoException ab, wenn spawn verwendet wird.Node.js fangen ENOMEM-Fehler nach Spawn
Der Fehler:
child_process.js:935
throw errnoException(process._errno, 'spawn');
^
Error: spawn ENOMEM
at errnoException (child_process.js:988:11)
at ChildProcess.spawn (child_process.js:935:11)
at Object.exports.spawn (child_process.js:723:9)
at module.exports ([...]/node_modules/zbarimg/index.js:19:23)
Ich verwende bereits Zuhörer für das error
und exit
Ereignis, aber nicht von ihnen bei diesem Fehler gefeuert.
Mein Code:
zbarimg = process.spawn('zbarimg', [photo, '-q']);
zbarimg.on('error', function(err) { ... });
zbarimg.on('close', function(code) { ... });
Der vollständige Quellcode available.
Kann ich irgendetwas tun, um zu verhindern, dass das Skript abstürzt? Wie erhalte ich den geworfenen ENOMEM Fehler?
Danke!
Haben Sie ein Beispiel Bild, das verwendet werden kann, um das Problem zu replizieren? – mscdex
Dies tritt auf, wenn der Server nicht genügend Arbeitsspeicher hat und nicht mit einem bestimmten Image reproduziert werden kann. Das macht es schwer zu testen: -/ – tobi
Was machst du im 'Fehler' Handler? – mscdex