14360: Use nonblocking mode when checking for stale lock.
[arvados.git] / services / crunch-run / background.go
index bd02db430cc03f8e6b7f62cc95d6372b34984b6a..deaf09cec84a7cd3e3549a9223ff4a913ebc053c 100644 (file)
@@ -18,7 +18,7 @@ import (
 )
 
 var (
-       lockdir    = "/var/run"
+       lockdir    = "/var/lock"
        lockprefix = "crunch-run-"
        locksuffix = ".lock"
 )
@@ -160,7 +160,7 @@ func ListProcesses(stdout, stderr io.Writer) int {
                // acquisition during races, e.g., by connecting to a
                // unix socket or checking /proc/$pid/fd/$n ->
                // lockfile.
-               err = syscall.Flock(int(f.Fd()), syscall.LOCK_SH)
+               err = syscall.Flock(int(f.Fd()), syscall.LOCK_SH|syscall.LOCK_NB)
                if err == nil {
                        // lockfile is stale
                        err := os.Remove(path)