gsettings-helper prints Gnome logs on stdout, causing pulseaudio to hang at startup
Summary
Having G_MESSAGES_DEBUG=all
set in the environment (a normal thing to do when debugging Gnome troubles) causes gsettings-helper
to emit a bunch of helpful gnome debug logs (which is good), but on stdout rather than stderr (which is bad!). These log messages end up being interpreted as the src/modules/stdin-util.c
protocol that gsettings-helper
uses to signal to pulseaudio
. pulseadio never sees the !
mixed up in the log messages that signals that startup can continue, so pulseaudio never finishes startup.
environment
Steps to reproduce
Set G_MESSAGES_DEBUG=all
in pulseaudio's environment.
- If you use pulseaudio through user-systemd, you can do this by running
systemctl --user edit pulseaudio
, adding:
[Service]
Environment="G_MESSAGES_DEBUG=all"
, and running systemctl --user restart pulseaudio
- Another way is to add
G_MESSAGES_DEBUG=all
to/etc/profile
and restart the machine.
What is the current bug behavior?
Pulesaudio never completes startup. This sequence of messages appears over and over in journalctl --user
:
Jun 13 12:15:42 hostname systemd[1113]: Starting Sound Service...
Jun 13 12:17:12 hostname systemd[1113]: pulseaudio.service: start operation timed out. Terminating.
Jun 13 12:17:12 hostname pulseaudio[7810]: Unable to read or parse data from client.
Jun 13 12:17:12 hostname pulseaudio[7810]: Failed to load module "module-gsettings" (argument: ""): initialization failed.
Jun 13 12:17:12 hostname systemd[1113]: pulseaudio.service: Failed with result 'timeout'.
Jun 13 12:17:12 hostname systemd[1113]: Failed to start Sound Service.
Jun 13 12:17:13 hostname systemd[1113]: pulseaudio.service: Scheduled restart job, restart counter is at 8.
Jun 13 12:17:13 hostname systemd[1113]: Stopped Sound Service.
The gnome debug messages sought with G_MESSAGES_DEBUG=all
do not appear in journalctl --user
.
What is the expected correct behavior?
Pulseaudio should start up normally.
The gnome debug messages sought with G_MESSAGES_DEBUG=all
should appear in journalctl --user
.