public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 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