Red Hat Bugzilla – Bug 457276
old libpulse doesn't work with new pa daemon
Last modified: 2008-10-27 09:19:19 EDT
After having upgraded pulseaudio:
In the logs:
Jul 30 17:07:33 cookie pulseaudio: shm.c: Invalid shared memory segment size
Jul 30 17:07:33 cookie pulseaudio: pstream.c: Failed to import memory block.
$ ls /etc/pulse/*rpmnew
8.2k /etc/pulse/client.conf.rpmnew 8.2k /etc/pulse/daemon.conf.rpmnew 13k
Moving the *rpmnew files on top of the "old" ones fixes pulseaudio errors.
The user-visible effect of this bug was for my Rhythmbox to eat all the CPU on
all my CPUs (and hang).
This only happens on upgrade: when an old version of libpulse connects to a new pa instance. A reboot or logout fixes that.
We need a system in packagekit that will lead to a session restart (or full reboot if system components are involved) after upgrades. Moving there.
There's exactly that functionality already. PackageKit understands system, session and application restarts, but only system restart information is provided in bohdi. If bohdi is patched to allow us to signal a session restart is required, then it's trivial to make PackageKit handle that new interaction (it just needs connecting up, all the UI and strings are already there).
Luke, is this somehting you're interested in adding?
Also, I think it's a bit of a cheap shot reassigning this to PackageKit, as it's a case of an old library not talking to a new daemon. I don't want PackageKit being the dumping ground for bugs that could be mitigated if there were generic changes to the infrastructure.
We should probably assume that when anything that runs in the user session is upgraded we need a session restart.
Was not intended to be a cheap shot in any way - just moving it into the general topic area, we can reassign further from here.
This doesn't need to be on the F10 blockers, it only happens when upgrading "live". Restarting the session will fix this, and we already suck in a number of similar ways in other apps.
I've added detection in PackageKit telling the user to restart the session if anything that is being run is updated. We'll have to see how effective this is, or if users just ignore it.