[Pkg-utopia-maintainers] Bug#805449: dbus: Please reboot the system when convenient. ← ?!

Thorsten Glaser tg at debian.org
Wed Jun 28 18:24:32 BST 2023


Simon McVittie dixit:

>> I read through the bugreport and I can see why it should not
>> just be automatically restarted.
>
>This has been discussed at *extensive* length before, and I'm pretty
>sure nothing I say is going to change your opinion anyway, but OK,

I wrote “I can see why”, not “I can’t see why”.

>Restarting the system dbus-daemon, `dbus-daemon --system`, on a running
>system is not a supported action. It disconnects all system-level D-Bus
>clients and services, which nearly always causes them to exit. Of the

But that’s OKAY! I want them to exit so that I can restart them.
I just need a list of affected services.

>Restarting the session dbus-daemon, `dbus-daemon --session`, in a

I don’t have such a thing.

$ ps ax | fgrep dbus
 1497 ?        Ss     0:00 /usr/bin/dbus-daemon --system
 6883 pts/17   S+     0:00 grep -F dbus

So it’s just system services.

>Compare with any other stateful IPC protocol, like X11. In principle, it
>is possible to write an X11 client that can reconnect when you restart the
>X11 server. In practice, essentially nobody does (I think Emacs might?)

Yes, I know, it’s fine. I just want a list of services to restart.

>On a typical Debian system, restarting `dbus-daemon --system` will
>cause system services to stop working, in a way that is only practical
>to recover from by a reboot. If you have an in-depth understanding of

WHICH ones?

I’m pretty sure this only applies to systemd, which I don’t use.

>D-Bus is about 8 years older than systemd, and many things that are
>not systemd use it. I don't know what all of them are, in the same way

Yes, but which ones, or rather, how can I find them out?

>> Is there a “needrestart”-like tool, or something like ps/netstat,
>> showing which programs use dbus, for restarting them afterwards?
>
>The D-Bus protocol operates over an AF_UNIX socket (a lot like X11 and
>Wayland), so passing suitable options to netstat or ss will tell you
>what is connected to it.

Hmm.

This?

$ sudo netstat -anp | fgrep 1497
unix  2      [ ACC ]     STREAM     LISTENING     14017    1497/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     1356473  1497/dbus-daemon     /run/dbus/system_bus_socket
unix  2      [ ]         DGRAM                    1267167  1497/dbus-daemon
unix  3      [ ]         STREAM     CONNECTED     15526    1497/dbus-daemon
unix  3      [ ]         STREAM     CONNECTED     15527    1497/dbus-daemon

And then this?

$ sudo netstat -anp | fgrep /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     14017    1497/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     1356473  1497/dbus-daemon     /run/dbus/system_bus_socket

Does this mean nothing is connected to the running system dbus?

Another system has even more:

$ sudo netstat -anp | fgrep /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     20510    2203/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     31073    2203/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     24671    2203/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     24022    2203/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     20019    2203/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     20769    2203/dbus-daemon     /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     28910    2203/dbus-daemon     /run/dbus/system_bus_socket

But still all in $pid/dbus-daemon.

$ sudo lsof /run/dbus/system_bus_socket
COMMAND    PID       USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
dbus-daem 2203 messagebus    4u  unix 0x000000005a3413d3      0t0 20510 /run/dbus/system_bus_socket type=STREAM
dbus-daem 2203 messagebus    9u  unix 0x00000000ec903f8e      0t0 20769 /run/dbus/system_bus_socket type=STREAM
dbus-daem 2203 messagebus   10u  unix 0x00000000f91f0f2d      0t0 20019 /run/dbus/system_bus_socket type=STREAM
dbus-daem 2203 messagebus   11u  unix 0x00000000487984d7      0t0 31073 /run/dbus/system_bus_socket type=STREAM
dbus-daem 2203 messagebus   12u  unix 0x00000000fb9c734e      0t0 24022 /run/dbus/system_bus_socket type=STREAM
dbus-daem 2203 messagebus   13u  unix 0x00000000a12611a9      0t0 24671 /run/dbus/system_bus_socket type=STREAM
dbus-daem 2203 messagebus   14u  unix 0x00000000266ed9ec      0t0 28910 /run/dbus/system_bus_socket type=STREAM

Would either of these commands positively find all affected users
of dbus?

$ ll /run/dbus/
total 4
-rw-r--r-- 1 root root 5 Jun 24 23:53 pid
srwxrwxrwx 1 root root 0 Jun 24 23:53 system_bus_socket=

(on both systems)

That’s all I want to know…

bye,
//mirabilos
-- 
Yay for having to rewrite other people's Bash scripts because bash
suddenly stopped supporting the bash extensions they make use of
	-- Tonnerre Lombard in #nosec



More information about the Pkg-utopia-maintainers mailing list