[Pkg-utopia-maintainers] Bug#495257: Bug#495257: dbus: System bus must not be restarted during package upgrades

Sjoerd Simons sjoerd at luon.net
Sat Aug 30 13:27:13 UTC 2008


retitle 495257 dbus should not use connection on restart
severity 495257 important
thanks,

On Fri, Aug 15, 2008 at 06:59:55PM +0100, Sam Morris wrote:
> Package: dbus
> Version: 1.2.1-3
> Severity: serious
> 
> Yesterday I upgraded my system and during the process the system dbus
> daemon was restarted. This caused a variety of interesting and amusing
> things to happen to my system, including gnome-power-manager dieing,
> network-manager dieing, the gnome panel dieing, and rhythmbox freezing
> up and chewing 100% of the CPU.
> 
> The bugs I filed upstream are:
> 
> http://bugzilla.gnome.org/show_bug.cgi?id=547932
> http://bugzilla.gnome.org/show_bug.cgi?id=547850
> http://bugzilla.gnome.org/show_bug.cgi?id=547851
> http://bugzilla.gnome.org/show_bug.cgi?id=547849
> 
> In the last of these, the NetworkManager developers were quite clear
> that distributions must *not* restart the dbus system bus, ever:
> 
> "Distros should not be restarting the bus on upgrade of the dbus package.  NM
> supports bus reconnections when it's been kicked off because of doing
> something bad, but does not support bus reconnections if dbus itself goes
> away."

> and
> 
> "the user wouldn't need to scratch his/her head if the distro did not restart
> the dbus service on a package upgrade.  the bus is _not_ meant to be
> restarted on-the-fly.  this is also the view of upstream dbus maintainers and
> has always been the view of upstream dbus maintainers.  there are way too
> many pieces here on the bus that NM talks to, and the code for doing state
> resynchronization after a bus restart would be hugely prohibitive when the
> bus should just not be restarted in the first place."
> 
> A dbus developer also cited a mailing list thread
> <http://mail.gnome.org/archives/networkmanager-list/2005-March/msg00022.html>
> where it was stated,
> 
> "I don't think we should really try to support this.  Restarting D-BUS
> should be viewed like trying to live-restart a new kernel.  There's so
> many complicated issues in it, and it'll be a rarely-tested code path.
> Right now it's a bug that the Fedora D-BUS and NetworkManager RPM
> scripts restart after a package upgrade."
> 
> Given the amount of crashes, freezes and general random weird behaviour
> that occurs when the system dbus daemon is restarted, it is clear that
> dbus clients simply can not handle the daemon being restarted. Since the
> upstreams of both dbus clients, and of dbus itself, say that this should
> not be done, and are not interested in accepting patches to make things
> work, we really shouldn't be doing it.

The only reason why D-Bus restarts in a stable debian version, is security
updates. Where it does not make sense to wait imho. Also for something like
network-manager, we restart that on dbus upgrade, so the user-experience should
just be a network reconnection (if he's on wireless), which is what it nicely
does on my system.

I do regard programs not coping gracefully with a dbus-daemon crash or restart
as being buggy and fixed several of them over the years. For most things it's
not that hard to fix.

If you want a real solution, then dbus should support restarting/reloading
itself in place like init does. If you want to claim that d-bus should be
treated like the kernel, please make it part of the kernel :)

Also like michiel said further on in the thread, upgrades from etch to lenny
will always restart dbus. So for etch->lenny we can't fix this anyway.
Hopefully for lenny+1 there will be a better solution.

  Sjoerd
-- 
Reality is just a crutch for people who can't handle science fiction.





More information about the Pkg-utopia-maintainers mailing list