Comment 0 for bug 569395

Revision history for this message
Chow Loong Jin (hyperair) wrote : Having multiple pulseaudio instances open causes physical sinks to be muted upon resume

Binary package hint: pulseaudio

I noticed this the other day after accidentally going into "Switch User" mode: I had my own pulseaudio instance, and gdm had its own. I then suspending my machine, and upon resuming, sound was muted.

The reason for this happening is due to a bug in the 01Pulseaudio pm-utils hook.
1. First, it checks the status of gdm's pulseaudio, stores it, then mutes it.
2. Then, it checks the status of my pulseaudio, stores it, and also mutes it. Due to #1, the sink is already muted, as both sinks were pointing to the same physical device. Hence, the stored states are as follows: gdm's sink is not muted, but mine is.

Upon resuming:
1. It reads gdm's state, and unmutes the sink.
2. Then it reads my pulseaudio's saved state, and mutes the sink again.

Result: The sink is muted after resuming from suspend.

N.B.:
This seems to be a corner case that only occurs when multiple pulseaudio instances are running, and both contain sinks pointing to the same underlying device. It can probably be fixed by changing the pm-utils hook order to read and store all the states of the sinks prior to muting them.