فهرست منبع

fix double callback for proc.on 'error' and proc.on 'close'

Brian Gough 11 سال پیش
والد
کامیت
7f38c5e5a3
1فایلهای تغییر یافته به همراه8 افزوده شده و 4 حذف شده
  1. 8 4
      services/clsi/app/coffee/OutputFileOptimiser.coffee

+ 8 - 4
services/clsi/app/coffee/OutputFileOptimiser.coffee

@@ -2,6 +2,7 @@ fs = require "fs"
 Path = require "path"
 spawn = require("child_process").spawn
 logger = require "logger-sharelatex"
+_ = require "underscore"
 
 module.exports = OutputFileOptimiser =
 
@@ -22,12 +23,15 @@ module.exports = OutputFileOptimiser =
 		stdout = ""
 		proc.stdout.on "data", (chunk) ->
 			stdout += chunk.toString()
-		proc.on "error", callback
+		callback = _.once(callback) # avoid double call back for error and close event
+		proc.on "error", (err) ->
+			logger.warn {err, args}, "qpdf failed"
+			callback(null) # ignore the error
 		proc.on "close", (code) ->
 			if code != 0
-				logger.warn {directory, code}, "qpdf returned error"
-				return callback null
+				logger.warn {code, args}, "qpdf returned error"
+				return callback(null) # ignore the error
 			fs.rename tmpOutput, dst, (err) ->
 				if err?
 					logger.warn {tmpOutput, dst}, "failed to rename output of qpdf command"
-				callback err
+				callback(null) # ignore the error