On Wed, 25.08.10 03:03, Miloslav Trmač (mitr(a)volny.cz) wrote:
> > > > If the libraries or binaries used by systemd are
replaced during runtime,
> > > > and it is not re-executed on shutdown, the filesystem will have busy
inodes
> > > > on shutdown. (If you'd like to take the filesystem semantics up
with the
> > > > kernel, feel free to tilt at that windmill.)
<snip>
> Well, what me still puzzles is this: the reexec is done asynchronously,
> via signals. Shouldn't this be done synchronously at least to make
> sure the daemon really is reexec'ed when we try to remount r/o?
The traditional solution is to reexec not on shutdown, but immediately
after init upgrade (which also frees the inodes early); this can still
race with shutdown in theory, but is probably good enough in practice.
Well, while reexecing on package upgrades might kinda help fix the issue
I think it doesn't really scale, because you'd have to reexec systemd
when any of the libs it uses is upgraded, i.e. glibc, audit, selinux,
tcpwrap, pam, libcap.
So I guess there's isn't really any other option then reexecing init in
some way on shutdown.
Lennart
--
Lennart Poettering - Red Hat, Inc.