Patch for rc.d/devd on FreeBSD 9-current
Garrett Cooper
yanefbsd at gmail.com
Mon Jun 28 16:57:43 UTC 2010
2010/6/28 Dag-Erling Smørgrav <des at des.no>:
> "M. Warner Losh" <imp at bsdimp.com> writes:
>> Dag-Erling Smørgrav <des at des.no> writes:
>> > "M. Warner Losh" <imp at bsdimp.com> writes:
>> > > Maybe the real problem is that devd locks the file, then dies. The
>> > > file remains locked, so the flopen is failing with EWOULDBLOCK.
>> > The lock is released when the process that holds it terminates.
>> So which process is that? devd took it out, and is subsequently
>> killed. When it restarts, it can't take out the lock.
>
> What does fstat say about the pid file?
>
>> The same code works perfectly in 8.0-stable from April.
>>
>> The conclusion, I believe, is that somebody broke locking in
>> current...
>
> Before I wrote one of my earlier replies, I traced through the code
> paths that lead to a lock being released, and everything looks fine and
> dandy. Besides, if someone had, as you suggest, broken locking in
> current, there would be a lot more noise about it on the lists.
Hi DES,
When I do the following:
/etc/rc.d/devd start
/etc/rc.d/devd stop
It leaves stray unused lockfiles in the directory:
$ sudo /etc/rc.d/devd start
Starting devd.
$ ls -l /var/run/devd.pi*
-rw------- 1 root wheel 5 Jun 28 09:53 /var/run/devd.pid
srw-rw-rw- 1 root wheel 0 Jun 28 09:53 /var/run/devd.pipe
$ fstat /var/run/devd.pi*
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W NAME
root devd 29791 6 /var 447511 -rw------- 5 w
/var/run/devd.pid
$ sudo /etc/rc.d/devd stop
Stopping devd.
$ ls -l /var/run/devd.pi*
-rw------- 1 root wheel 5 Jun 28 09:52 /var/run/devd.pid
srw-rw-rw- 1 root wheel 0 Jun 28 09:52 /var/run/devd.pipe
$ fstat /var/run/devd.pi*
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W NAME
Thanks,
-Garrett
More information about the freebsd-current
mailing list