[Server-devel] Anaconda does not clear /var/lock/subsys - service $svc condrestart start services
Martin Langhoff
martin.langhoff at gmail.com
Wed Mar 18 00:13:54 EDT 2009
In the course of diagnosing a strange problem that seems to happen
only on some anaconda-driven upgrades, I found that -- unlike the
normal boot process -- there is nothing in anaconda that clears
/var/lock/subsys.
(Note - this applies to the Fedora 9 based OLPC XS. Perhaps this is
known and fixed?)
This completely fools the `service <svc> condrestart` lines in %post,
and can lead to various hard to debug problems. In my case, I am
seeing corrupt databases with ejabberd (which has an admittedly
brittle db scheme).
To test this, touch /var/lock/subsys/foo; sync ; power off the machine
and run an anaconda upgrade. You'll see that while packages are being
installed, the file remains there. If that had been
'/var/lock/subsys/ejabberd' you'd have a corrupt DB. Don't feel left
out though, if you want one, I can give you mine :-)
This may sound weird -- don't you expect a clean shutdown before an
upgrade? -- but in OLPC School Servers in the field get quite a bit of
rough handling. The ones I work with sure get most of their poweroffs
via the "powercable yanking" scheme, so I get to see these problems
here before they happen in the field.
IOWs reliability in the face of strange conditions _is_ desirable, and
important.
- Is this known, or fixed?
- Is there a reasonable workaround? kickstart is not used for
upgrades, even if it was, %pre happens to early, %post happens too
late.
Would the right place to clear (or complain about!) /var/lock/subsys
would be upgrade.py: upgradeMountFilesystems()?
cheers,
m
--
martin.langhoff at gmail.com
martin at laptop.org -- School Server Architect
- ask interesting questions
- don't get distracted with shiny stuff - working code first
- http://wiki.laptop.org/go/User:Martinlanghoff
More information about the Server-devel
mailing list