diff --git a/lib/storage/file.js b/lib/storage/file.js index 16f8c8ba7..d9d3f7c89 100644 --- a/lib/storage/file.js +++ b/lib/storage/file.js @@ -779,9 +779,11 @@ const messageBin = (env, chanName, msgBin, cb) => { chan.writeStream.write(msgBin, function () { chan.onError.splice(chan.onError.indexOf(complete), 1); complete(); +// It seems like this reintroduces a file descriptor leak if (chan.onError.length) { return; } if (chan.delayClose && chan.delayClose.clear) { chan.delayClose.clear(); + destroyStream(chan.writeStream, chanName); delete env.channels[chanName]; } });