change sync to async for lockfile debugging

This commit is contained in:
Henry Oswald
2018-08-22 21:32:19 +01:00
parent 171ad0329d
commit e4d28addf9
2 changed files with 12 additions and 8 deletions

View File

@@ -16,11 +16,13 @@ module.exports = LockManager =
stale: @LOCK_STALE stale: @LOCK_STALE
Lockfile.lock path, lockOpts, (error) -> Lockfile.lock path, lockOpts, (error) ->
return callback new Errors.AlreadyCompilingError("compile in progress") if error?.code is 'EEXIST' return callback new Errors.AlreadyCompilingError("compile in progress") if error?.code is 'EEXIST'
if error? fs.lstat path, (err, statLock)->
logger.err error:error, path:path, statLock:fs.lstatSync(path), statDir: fs.lstatSync(path.dirname(path)), "unable to get lock" fs.lstat Path.dirname(path), (err, statDir)->
return callback(error) if error?
runner (error1, args...) -> logger.err error:error, path:path, statLock:statLock, statDir: statDir, "unable to get lock"
Lockfile.unlock path, (error2) -> return callback(error)
error = error1 or error2 runner (error1, args...) ->
return callback(error) if error? Lockfile.unlock path, (error2) ->
callback(null, args...) error = error1 or error2
return callback(error) if error?
callback(null, args...)

View File

@@ -10,6 +10,8 @@ describe "DockerLockManager", ->
@LockManager = SandboxedModule.require modulePath, requires: @LockManager = SandboxedModule.require modulePath, requires:
"settings-sharelatex": {} "settings-sharelatex": {}
"logger-sharelatex": @logger = { log: sinon.stub(), error: sinon.stub() } "logger-sharelatex": @logger = { log: sinon.stub(), error: sinon.stub() }
"fs":
lstat:sinon.stub().callsArgWith(1)
"lockfile": @Lockfile = {} "lockfile": @Lockfile = {}
@lockFile = "/local/compile/directory/.project-lock" @lockFile = "/local/compile/directory/.project-lock"