I got this strange error (crash) once, after moving about 2 Gb worth of files. I do think the transfer completed ok, but about 5 minutes after it completed, the node process had crashed. I didn't modify any of the log config. I noticed that in the repo directory there were many .log.gz files (ie. spi.log.gz, gpi1.log.gz, ...., spi9.log.gz )
the only config change i made was to remove all the "non-fs" shares like DAM and JCR and so on, but i doubt that affects the logging.
error: [SMB] encountered unhandled exception at the handler level. exiting message=ENOENT: no such file or directory, open 'spi.log', stack=Error: ENOENT: no such file or directory, open 'spi.log', errno=-2, code=ENOENT, syscall=open, path=spi.log, objectMode=false, highWaterMark=65536, head=null, tail=null, length=0, length=0, 0=0, 1=0, objectMode=false, highWaterMark=16384, head=null, tail=null, length=0, length=0, objectMode=false, highWaterMark=16384, finalCalled=false, needDrain=false, ending=false, ended=false, finished=false, destroyed=false, decodeStrings=true, defaultEncoding=utf8, length=0, writing=false, corked=0, sync=true, bufferProcessing=false, onwrite=function () { [native code] }, writecb=null, writelen=0, bufferedRequest=null, lastBufferedRequest=null, pendingcb=0, prefinished=false, errorEmitted=false, emitClose=false, autoDestroy=false, bufferedRequestCount=0, next=null, entry=null, finish=function () { [native code] }, writable=true, domain=null, removeListener=function updateExceptionCapture() {
if (stack.every((domain) => domain.listenerCount('error') === 0)) {
setUncaughtExceptionCaptureCallback(null);
} else {
setUncaughtExceptionCaptureCallback(null);
setUncaughtExceptionCaptureCallback((er) => {
return process.domain._errorHandler(er);
});
}
}, newListener=function updateExceptionCapture() {
if (stack.every((domain) => domain.listenerCount('error') === 0)) {
setUncaughtExceptionCaptureCallback(null);
} else {
setUncaughtExceptionCaptureCallback(null);
setUncaughtExceptionCaptureCallback((er) => {
return process.domain._errorHandler(er);
});
}
}, error=function (err) {
logger.error('encountered unhandled exception at the handler level. exiting', err);
process.exit(1);
}, _eventsCount=3, _maxListeners=undefined, members=[], unpipe=function onunpipe(readable, unpipeInfo) {
debug('onunpipe');
if (readable === src) {
if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
unpipeInfo.hasUnpiped = true;
cleanup();
}
}
}, drain=function pipeOnDrainFunctionResult() {
var state = src._readableState;
debug('pipeOnDrain', state.awaitDrain);
if (state.awaitDrain)
state.awaitDrain--;
if (state.awaitDrain === 0 && EE.listenerCount(src, 'data')) {
state.flowing = true;
flow(src);
}
}, error=function onerror(er) {
debug('onerror', er);
unpipe();
dest.removeListener('error', onerror);
if (EE.listenerCount(dest, 'error') === 0)
errorOrDestroy(dest, er);
}, close=function () { [native code] }, finish=function () { [native code] }, _eventsCount=5, _maxListeners=undefined, path=spi.log.gz, fd=null, flags=w, mode=438, start=undefined, autoClose=true, pos=undefined, bytesWritten=0, closed=false, pipesCount=1, flowing=true, ended=false, endEmitted=false, reading=true, sync=false, needReadable=true, emittedReadable=false, readableListening=false, resumeScheduled=false, paused=false, emitClose=true, autoDestroy=false, destroyed=false, defaultEncoding=utf8, awaitDrain=0, readingMore=false, decoder=null, encoding=null, readable=true, $ref=$["domainEmitter"]["_readableState"]["pipes"]["_readableState"]["pipes"]["domain"], prefinish=function prefinish() {
if (typeof this._flush === 'function' && !this._readableState.destroyed) {
this._flush((er, data) => {
done(this, er, data);
});
} else {
done(this, null, null);
}
}, end=[function () { [native code] }, function () { [native code] }], unpipe=function onunpipe(readable, unpipeInfo) {
debug('onunpipe');
if (readable === src) {
if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
unpipeInfo.hasUnpiped = true;
cleanup();
}
}
}, drain=function pipeOnDrainFunctionResult() {
var state = src._readableState;
debug('pipeOnDrain', state.awaitDrain);
if (state.awaitDrain)
state.awaitDrain--;
if (state.awaitDrain === 0 && EE.listenerCount(src, 'data')) {
state.flowing = true;
flow(src);
}
}, error=function onerror(er) {
debug('onerror', er);
unpipe();
dest.removeListener('error', onerror);
if (EE.listenerCount(dest, 'error') === 0)
errorOrDestroy(dest, er);
}, close=function () { [native code] }, finish=function () { [native code] }, data=function ondata(chunk) {
debug('ondata');
var ret = dest.write(chunk);
debug('dest.write', ret);
if (ret === false) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
// => Check whether `dest` is still a piping destination.
if (((state.pipesCount === 1 && state.pipes === dest) ||
(state.pipesCount > 1 && state.pipes.indexOf(dest) !== -1)) &&
!cleanedUp) {
debug('false write response, pause', state.awaitDrain);
state.awaitDrain++;
}
src.pause();
}
}, _eventsCount=8, _maxListeners=undefined, objectMode=false, highWaterMark=16384, finalCalled=false, needDrain=false, ending=false, ended=false, finished=false, destroyed=false, decodeStrings=true, defaultEncoding=utf8, length=0, writing=false, corked=0, sync=true, bufferProcessing=false, onwrite=function () { [native code] }, writecb=null, writelen=0, bufferedRequest=null, lastBufferedRequest=null, pendingcb=0, prefinished=false, errorEmitted=false, emitClose=true, autoDestroy=false, bufferedRequestCount=0, next=null, entry=null, finish=function () { [native code] }, writable=true, allowHalfOpen=true, afterTransform=function () { [native code] }, needTransform=true, transforming=false, writecb=null, writechunk=null, writeencoding=null, _hadError=false, bytesWritten=0, $ref=$["domainEmitter"]["_readableState"]["pipes"]["_readableState"]["pipes"]["domain"], onerror=function zlibOnError(message, errno, code) {
var self = this[owner_symbol];
// there is no way to cleanly recover.
// continuing only obscures problems.
_close(self);
self._hadError = true;
// eslint-disable-next-line no-restricted-syntax
const error = new Error(message);
error.errno = errno;
error.code = code;
self.emit('error', error);
}, 0=144, 1=123, 2=212, 3=182, .... [redacted] .... 16383=0, _outOffset=0, _chunkSize=16384, _defaultFlushFlag=0, _finishFlushFlag=4, _nextFlush=-1, _defaultFullFlushFlag=3, _info=undefined, _level=-1, _strategy=0, pipesCount=1, flowing=true, ended=false, endEmitted=false, reading=true, sync=false, needReadable=true, emittedReadable=false, readableListening=false, resumeScheduled=false, paused=false, emitClose=false, autoDestroy=false, destroyed=true, defaultEncoding=utf8, awaitDrain=0, readingMore=false, decoder=null, encoding=null, readable=true, $ref=$["domainEmitter"]["_readableState"]["pipes"]["_readableState"]["pipes"]["domain"], end=[function() {
if (this.autoClose) {
this.destroy();
}
}, function () { [native code] }], data=function ondata(chunk) {
debug('ondata');
var ret = dest.write(chunk);
debug('dest.write', ret);
if (ret === false) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
// => Check whether `dest` is still a piping destination.
if (((state.pipesCount === 1 && state.pipes === dest) ||
(state.pipesCount > 1 && state.pipes.indexOf(dest) !== -1)) &&
!cleanedUp) {
debug('false write response, pause', state.awaitDrain);
state.awaitDrain++;
}
src.pause();
}
}, open=[function () { [native code] }, function () { [native code] }], _eventsCount=3, _maxListeners=undefined, path=spi.log, fd=null, flags=r, mode=438, start=undefined, end=Infinity, autoClose=true, pos=undefined, bytesRead=0, closed=false, $ref=$["domainEmitter"]["_readableState"]["pipes"]["_readableState"]["pipes"]["domain"], domainThrown=false
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node ./index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2019-07-21T01_52_34_516Z-debug.log