* RFH: stale (f)lock in /proc/locks - process no longer exists
@ 2015-10-14 8:30 Philipp Hahn
2015-10-14 8:53 ` Philipp Hahn
0 siblings, 1 reply; 2+ messages in thread
From: Philipp Hahn @ 2015-10-14 8:30 UTC (permalink / raw)
To: linux-kernel
Hi,
I have several shell scripts using "/usr/bin/flock -x
/run/lock/jenkins-ip.lock" to acquiring the exclusive lock. Today they
hang, while the lock is owned by a process which no longer exists:
# ls -i /run/lock/jenkins-ip.lock
766711440 /run/lock/jenkins-ip.lock
# grep 766711440 /proc/locks
1: FLOCK ADVISORY WRITE 1722 00:12:766711440 0 EOF
1: -> FLOCK ADVISORY WRITE 1725 00:12:766711440 0 EOF
1: -> FLOCK ADVISORY WRITE 20432 00:12:766711440 0 EOF
1: -> FLOCK ADVISORY WRITE 20618 00:12:766711440 0 EOF
1: -> FLOCK ADVISORY WRITE 16235 00:12:766711440 0 EOF
1: -> FLOCK ADVISORY WRITE 21757 00:12:766711440 0 EOF
1: -> FLOCK ADVISORY WRITE 29151 00:12:766711440 0 EOF
# lslocks -o COMMAND,PID,TYPE,MODE,PATH,BLOCKER
COMMAND PID TYPE MODE PATH BLOCKER
(unknown) 5852 FLOCK WRITE /run
cron 489 FLOCK WRITE /run/crond.pid
libvirtd 506 POSIX WRITE /run/libvirtd.pid
flock 29151 FLOCK WRITE* /run/lock/jenkins-ip.lock 1722
flock 21757 FLOCK WRITE* /run/lock/jenkins-ip.lock 1722
flock 16235 FLOCK WRITE* /run/lock/jenkins-ip.lock 1722
flock 20618 FLOCK WRITE* /run/lock/jenkins-ip.lock 1722
flock 20432 FLOCK WRITE* /run/lock/jenkins-ip.lock 1722
flock 1725 FLOCK WRITE* /run/lock/jenkins-ip.lock 1722
(unknown) 1722 FLOCK WRITE /run/lock
# ps 1722
PID TTY STAT TIME COMMAND
# uname -a
Linux test4 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3
(2015-08-04) x86_64 GNU/Linux
1. How can this happen?
My understanding is, that all files are closed on process exit and
that all locks are released then. Did I miss something.
2. How can I release that lock?
Thanks in advance
Philipp
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: RFH: stale (f)lock in /proc/locks - process no longer exists
2015-10-14 8:30 RFH: stale (f)lock in /proc/locks - process no longer exists Philipp Hahn
@ 2015-10-14 8:53 ` Philipp Hahn
0 siblings, 0 replies; 2+ messages in thread
From: Philipp Hahn @ 2015-10-14 8:53 UTC (permalink / raw)
To: linux-kernel
To answer my own question:
Am 14.10.2015 um 10:30 schrieb Philipp Hahn:
> I have several shell scripts using "/usr/bin/flock -x
> /run/lock/jenkins-ip.lock" to acquiring the exclusive lock. Today they
> hang, while the lock is owned by a process which no longer exists:
...
> 1. How can this happen?
> My understanding is, that all files are closed on process exit and
> that all locks are released then. Did I miss something.
I used "{ flock -x 9 } 9<>/var/lock/jenkins-ip.lock": The shell opens
the file, but flock runs in a sub-process; after doing the locking the
process exits and is no longer available, but the locking for the still
opened file persist.
My shell script then received some signals, invoked its trap handler,
which then did some recursive locking.
> 2. How can I release that lock?
Killed the recursive "flock -x" call.
Philipp
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-10-14 8:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-14 8:30 RFH: stale (f)lock in /proc/locks - process no longer exists Philipp Hahn
2015-10-14 8:53 ` Philipp Hahn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox