Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Feb 2012 13:45:50 -0800
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Torfinn Ingolfsen <torfinn.ingolfsen@broadpark.no>
Cc:        dougb@freebsd.org, freebsd-stable@freebsd.org
Subject:   Re: FreeBSD 8.2-stable: devd fails to restart
Message-ID:  <20120202214550.GA6965@icarus.home.lan>
In-Reply-To: <20120202212222.e940f64c.torfinn.ingolfsen@broadpark.no>
References:  <20120202212222.e940f64c.torfinn.ingolfsen@broadpark.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 02, 2012 at 09:22:22PM +0100, Torfinn Ingolfsen wrote:
> Hi,
> 
> I thought this bug was fixed back in 2009?
> root@kg-v7# uname -a
> FreeBSD kg-v7.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #7: Sat Jul  9 23:00:31 CEST 2011     root@kg-v7.kg4.no:/usr/obj/usr/src/sys/GENERIC  amd64
> root@kg-v7# 
> root@kg-v7# service devd status
> devd is running as pid 555.
> root@kg-v7# service devd restart
> Stopping devd.
> Starting devd.
> devd: devd already running, pid: 555
> /etc/rc.d/devd: WARNING: failed to start devd
> root@kg-v7# service devd status
> devd is not running.
> 
> What gives?

This is probably "what gives", as it's a common problem with all sorts
of daemons and is not specific to devd in the least:

- devd is running (pid 555)
- Admin issues "service devd restart"
  -- devd is sent SIGTERM; devd internally starts shutting down,
     but is not fully dead yet.  "kill" does not block (wait) for
     processes to end, obviously
  -- Same script issues a start of devd, which fails because the
     daemon is still running (still shutting down)
  -- Resulting message is failure
- Between failure message and below step, devd shuts down
- Admin issues "service devd status"
  -- Script states devd isn't running

I imagine either rc.subr(8) check_pidfile or wait_for_pids needs to be
used, presumably in devd_stop () (which would need to be added/written).
I do not know the implications of adding this, however, as there may be
situations where (say on system shutdown) that you want things to "just
end immediately" and not wait for the daemon to cleanly shut down.  I
say this because of devd's direct ties to devctl(4).

Doug, any thoughts?

-- 
| Jeremy Chadwick                                 jdc@parodius.com |
| Parodius Networking                     http://www.parodius.com/ |
| UNIX Systems Administrator                 Mountain View, CA, US |
| Making life hard for others since 1977.             PGP 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120202214550.GA6965>