Re: /etc/rc.d locking devd.pid (was Re: Restarting devd)

From: Warren Block <wblock_at_wonkity.com>
Date: Wed, 11 Nov 2009 16:54:39 -0700 (MST)
On Sun, 18 Oct 2009, Warren Block wrote:

> On Mon, 19 Oct 2009, Kostik Belousov wrote:
>>> 
>>> ...and this is due to dhclient, run from /etc/rc.d at startup, locking
>>> /var/run/devd.pid:
>>> 
>>> lightning% lsof /var/run/devd.pid
>>> COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
>>> devd      400  root    6w  VREG  0,101        3 47124 /var/run/devd.pid
>>> dhclient  865  root    6w  VREG  0,101        3 47124 /var/run/devd.pid
>>> dhclient 1024 _dhcp    6w  VREG  0,101        3 47124 /var/run/devd.pid
>>> 
>>> This is a regression from 7-STABLE, where devd.pid is only locked by
>>> devd after startup.
>> 
>> Devd forks to spawn dhclient, it seems, and opened file descriptor for
>> the lock file is leaking to the child. Since pidfile(3) uses flock(2),
>> the lock survives devd death.
>> 
>> I think that this is a generic issue with pidfile/fork interaction.
>> It is not obvious whether setting FD_CLOEXEC flag is right thing to
>> do there.

(And that didn't fix it, but information included for completeness.)

I've entered PR bin/140462 for this.

-Warren Block * Rapid City, South Dakota USA
Received on Wed Nov 11 2009 - 22:54:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:57 UTC