update-manager freezes due to defunct dpkg process
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apt (Ubuntu) |
Fix Released
|
High
|
Michael Vogt | ||
Gutsy |
Fix Released
|
Undecided
|
Unassigned | ||
Hardy |
Fix Released
|
High
|
Michael Vogt |
Bug Description
Binary package hint: update-manager
During automatic updates, the installation procedure often freezes due to a defunct dpkg process. Here is a snippet of 'ps auxef':
martin 8551 0.1 4.7 328804 98540 ? Sl 10:43 0:04 /usr/bin/python2.5 /usr/bin/
martin 11337 0.0 0.2 120336 5976 ? S 11:09 0:00 \_ gksu --desktop /usr/share/
root 11338 0.1 2.9 217392 60780 ? Ss 11:09 0:02 \_ /usr/sbin/synaptic --hide-main-window --non-interactive --parent-window-id 67108867 --progre
root 11340 0.0 0.0 17156 792 ? S 11:09 0:00 \_ gnome-pty-helper
root 11341 0.4 1.0 200292 21732 pts/5 Ss+ 11:09 0:06 \_ /usr/sbin/synaptic --hide-main-window --non-interactive --parent-window-id 67108867 --pr
root 11765 0.2 0.0 0 0 ? Zs 11:10 0:02 \_ [dpkg] <defunct>
The terminal widget that appears after clicking on "Details" is still responsive, but I cannot type inside it.
~$ sudo strace -p 11341
Process 11341 attached - interrupt to quit
read(36,
(just hangs there)
$ sudo gdb /usr/sbin/synaptic 11341
(gdb) where
#0 0x00002b5620904ec0 in __read_nocancel () from /lib/libpthread
#1 0x00002b561bad626c in pkgDPkgPM:
#2 0x00002b561badb043 in pkgDPkgPM::Go () from /usr/lib/
#3 0x000000000042d323 in ?? ()
#4 0x000000000046ac0f in ?? ()
#5 0x000000000043dfd8 in ?? ()
#6 0x0000000000415677 in ?? ()
#7 0x00002b562104ab44 in __libc_start_main () from /lib/libc.so.6
#8 0x0000000000413569 in ?? ()
#9 0x00007fff8f282e28 in ?? ()
#10 0x0000000000000000 in ?? ()
After "sudo killall -TERM synaptic" update-manager behaves just as if the installation process has finished (but I have to "apt-get -f install" manually to clean up).
This could be related to #103753, but here it does not freeze the whole computer.
---------
For the sru verfication, please run this (its a race condition in the code so it may
not possible to trigger easily depending the computer type).
TEST CASE:
0. install gutsy
1. run while true; do apt-get install -y 2vcard; apt-get install -y 2vcard-; done
2. wait for it to hang
3. install apt from gutsy-proposed
4. run the same test again, this time it should not stop
Related branches
Changed in update-manager: | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in update-manager: | |
assignee: | nobody → mvo |
Changed in update-manager: | |
status: | Incomplete → In Progress |
description: | updated |
description: | updated |
I forgot: I'm running gutsy amd64
Ciao
Martin