[Aptitude-devel] Bug#658271: Bug#658271: Bug#681023: aptitude: quit keybinding lost under some circumstances

Axel Beckert abe at debian.org
Fri Feb 8 14:40:21 UTC 2013


Control: found -1 0.6.8.2-1
Control: tag -1 - unreproducible

Axel Beckert wrote:
> Daniel Hartwig wrote:
> > If anyone else experiences this please let us know as I would like to
> > get an idea of how widespread the issue is.
> >
> > On 10 July 2012 08:38, Axel Beckert <abe at debian.org> wrote:
> > > I experienced the following already with some earlier aptitude version,
> > > but with 0.6.9 I ran into it nearly everytime I use the interactive
> > > mode:
> 
> I still have one box where I have 0.6.9.x installed. Ran into it there
> again today.

Unfortunately this machine died recently.

But I ran into it today on Sid i386 with aptitude from wheezy/sid
(i.e. 0.6.8.2-1) while (unsuccessfully) trying to reproduce
http://bugs.debian.org/466594. No aptitude-dbg
was installed, but I installed it and could reproduce it as follows:

Start aptitude interactively, i.e. with no parameter or option.

Install aptitude-dbg (if not already installed) and remove reportbug
and all other packages aptitude wants to remove because of that, too.

Press 2x "g" to remove reportbug and install aptitude-dbg.

Then either press Enter after the installation and removals are
finished -- or press Ctrl-C and start aptitude again.

Now "q" works.

Press "B" on base-files (first package in list of installed packages
here). Quickly returns to the TUI.

"q" still works as expected.

Select dpkg-dev-el. Press + for installation (it must have been not
installed as it has reportbug as indirect dependency and we removed
that before).

Press "g" to get the preview. Press "q" to leave the preview. Works as
expected.

Press "q" again. Nothing happens.

I could reproduce this at least three times in a row (with "quiting"
aptitude with a Ctrl-C in between). It was not important if I first
pressed "B" on base-files or "+" on dpkg-dev-el. It though seemed to
be important to press "+" on dpkg-dev-el and not on task-amharic
(which was one of the first packages in the not-installed list),
because it didn't work with that -- no idea why.

I created an aptitude state bundle (40 MB) with which this issue
should be reproducible. It's available at
http://www.phys.ethz.ch/~abe/Debian-Bugs/aptitude-state-bundle-for-%23466594.bz2

Additionally here's a single-stepping through in gdb what happened
after pressing "q" in case the above doesn't help to reproduce this
issue:

(gdb) bt
#0  0xb73d9424 in __kernel_vsyscall ()
#1  0xb6db120a in __pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:153
#2  0xb7170e0b in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
#3  0xb7521cea in ui_main () at ../../src/ui.cc:2936
#4  0xb745440c in main (argc=1, argv=0xbfa43254) at ../../src/main.cc:1307
(gdb) s
Single stepping until exit from function __kernel_vsyscall, which has no line number information.
__pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:156
156     pthread_cond_wait.c: No such file or directory.
(gdb) 

At this point I pressed "q" in the TUI.

__pthread_disable_asynccancel (oldtype=0) at cancellation.c:69
69      cancellation.c: No such file or directory.
(gdb) 
66      in cancellation.c
(gdb) 
69      in cancellation.c
(gdb) 
72      in cancellation.c
(gdb) 
75      in cancellation.c
(gdb) 
79      in cancellation.c
(gdb) 
81      in cancellation.c
(gdb) 
79      in cancellation.c
(gdb) 
81      in cancellation.c
(gdb) 
83      in cancellation.c
(gdb) 
94      in cancellation.c
(gdb) 
100     in cancellation.c
(gdb) 
__pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:159
159     pthread_cond_wait.c: No such file or directory.
(gdb) 
162     in pthread_cond_wait.c
(gdb) 
166     in pthread_cond_wait.c
(gdb) 
168     in pthread_cond_wait.c
(gdb) 
171     in pthread_cond_wait.c
(gdb) 
175     in pthread_cond_wait.c
(gdb) 
180     in pthread_cond_wait.c
(gdb) 
175     in pthread_cond_wait.c
(gdb) 
180     in pthread_cond_wait.c
(gdb) 
175     in pthread_cond_wait.c
(gdb) 
180     in pthread_cond_wait.c
(gdb) 
185     in pthread_cond_wait.c
(gdb) 
188     in pthread_cond_wait.c
(gdb) 
_pthread_cleanup_pop (buffer=0xbfa42d7c, execute=0) at cleanup_compat.c:45
45      cleanup_compat.c: No such file or directory.
(gdb) 
48      in cleanup_compat.c
(gdb) 
52      in cleanup_compat.c
(gdb) 
54      in cleanup_compat.c
(gdb) 
__pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:191
191     pthread_cond_wait.c: No such file or directory.
(gdb) 
__pthread_mutex_cond_lock (mutex=0xb721dd38) at ../nptl/pthread_mutex_lock.c:50
50      ../nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) 
47      in ../nptl/pthread_mutex_lock.c
(gdb) 
__i686.get_pc_thunk.bx () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S:170
170     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S: No such file or directory.
(gdb) 
171     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S
(gdb) 
__pthread_mutex_cond_lock (mutex=0xb721dd38) at ../nptl/pthread_mutex_lock.c:50
50      ../nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) 
51      in ../nptl/pthread_mutex_lock.c
(gdb) 
50      in ../nptl/pthread_mutex_lock.c
(gdb) 
51      in ../nptl/pthread_mutex_lock.c
(gdb) 
54      in ../nptl/pthread_mutex_lock.c
(gdb) 
56      in ../nptl/pthread_mutex_lock.c
(gdb) 
54      in ../nptl/pthread_mutex_lock.c
(gdb) 
56      in ../nptl/pthread_mutex_lock.c
(gdb) 
61      in ../nptl/pthread_mutex_lock.c
(gdb) 
62      in ../nptl/pthread_mutex_lock.c
(gdb) 
125     in ../nptl/pthread_mutex_lock.c
(gdb) 
131     in ../nptl/pthread_mutex_lock.c
(gdb) 
__pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:192
192     pthread_cond_wait.c: No such file or directory.
(gdb) 
0xb7170e0b in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_mutex_unlock (mutex=0xb721dd38) at pthread_mutex_unlock.c:290
290     pthread_mutex_unlock.c: No such file or directory.
(gdb) 
291     in pthread_mutex_unlock.c
(gdb) 
Cannot access memory at address 0xcf8
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=1) at pthread_mutex_unlock.c:36
36      in pthread_mutex_unlock.c
(gdb) 
37      in pthread_mutex_unlock.c
(gdb) 
36      in pthread_mutex_unlock.c
(gdb) 
__i686.get_pc_thunk.bx () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S:170
170     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S: No such file or directory.
(gdb) 
171     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=1) at pthread_mutex_unlock.c:37
37      pthread_mutex_unlock.c: No such file or directory.
(gdb) 
38      in pthread_mutex_unlock.c
(gdb) 
41      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
46      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
49      in pthread_mutex_unlock.c
(gdb) 
52      in pthread_mutex_unlock.c
(gdb) 
0xb6db0602 in _L_unlock_621 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
(gdb) 
Single stepping until exit from function _L_unlock_621,
which has no line number information.
__lll_unlock_wake () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:369
369     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S: No such file or directory.
(gdb) 
371     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
373     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
379     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
380     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
381     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
382     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
383     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
384     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
386     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
389     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
392     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
395     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S
(gdb) 
0xb6db060b in _L_unlock_621 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
(gdb) 
Single stepping until exit from function _L_unlock_621,
which has no line number information.
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=0) at pthread_mutex_unlock.c:77
77      pthread_mutex_unlock.c: No such file or directory.
(gdb) 
0xb7170e51 in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_mutex_lock (mutex=0xb721dd6c) at pthread_mutex_lock.c:50
50      pthread_mutex_lock.c: No such file or directory.
(gdb) 
51      in pthread_mutex_lock.c
(gdb) 
50      in pthread_mutex_lock.c
(gdb) 
51      in pthread_mutex_lock.c
(gdb) 
54      in pthread_mutex_lock.c
(gdb) 
56      in pthread_mutex_lock.c
(gdb) 
54      in pthread_mutex_lock.c
(gdb) 
56      in pthread_mutex_lock.c
(gdb) 
64      in pthread_mutex_lock.c
(gdb) 
69      in pthread_mutex_lock.c
(gdb) 
82      in pthread_mutex_lock.c
(gdb) 
84      in pthread_mutex_lock.c
(gdb) 
85      in pthread_mutex_lock.c
(gdb) 
125     in pthread_mutex_lock.c
(gdb) 
127     in pthread_mutex_lock.c
(gdb) 
125     in pthread_mutex_lock.c
(gdb) 
127     in pthread_mutex_lock.c
(gdb) 
131     in pthread_mutex_lock.c
(gdb) 
0xb7170e68 in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_mutex_lock (mutex=0xb721dd38) at pthread_mutex_lock.c:50
50      in pthread_mutex_lock.c
(gdb) 
51      in pthread_mutex_lock.c
(gdb) 
50      in pthread_mutex_lock.c
(gdb) 
51      in pthread_mutex_lock.c
(gdb) 
54      in pthread_mutex_lock.c
(gdb) 
56      in pthread_mutex_lock.c
(gdb) 
54      in pthread_mutex_lock.c
(gdb) 
56      in pthread_mutex_lock.c
(gdb) 
61      in pthread_mutex_lock.c
(gdb) 
62      in pthread_mutex_lock.c
(gdb) 
125     in pthread_mutex_lock.c
(gdb) 
127     in pthread_mutex_lock.c
(gdb) 
125     in pthread_mutex_lock.c
(gdb) 
127     in pthread_mutex_lock.c
(gdb) 
131     in pthread_mutex_lock.c
(gdb) 
0xb7170ece in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_mutex_unlock (mutex=0xb721dd38) at pthread_mutex_unlock.c:290
290     pthread_mutex_unlock.c: No such file or directory.
(gdb) 
291     in pthread_mutex_unlock.c
(gdb) 
Cannot access memory at address 0xcf8
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=1) at pthread_mutex_unlock.c:36
36      in pthread_mutex_unlock.c
(gdb) 
37      in pthread_mutex_unlock.c
(gdb) 
36      in pthread_mutex_unlock.c
(gdb) 
__i686.get_pc_thunk.bx () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S:170
170     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S: No such file or directory.
(gdb) 
171     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=1) at pthread_mutex_unlock.c:37
37      pthread_mutex_unlock.c: No such file or directory.
(gdb) 
38      in pthread_mutex_unlock.c
(gdb) 
41      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
46      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
49      in pthread_mutex_unlock.c
(gdb) 
52      in pthread_mutex_unlock.c
(gdb) 
77      in pthread_mutex_unlock.c
(gdb) 
0xb7170ee3 in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.

sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0xb8cf4fa8) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:99
99        static T_return call_it(slot_rep* rep)
(gdb) 
103           return (typed_rep->functor_)();
(gdb) 
operator() (this=0xb8cf4fc0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
103           return (typed_rep->functor_)();
(gdb) 
operator() (this=0xb8cf4fc4) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
77          { return func_ptr_(); }
(gdb) 
check_apt_errors () at ../../src/ui.cc:302
302     ../../src/ui.cc: No such file or directory.
(gdb) 
303     in ../../src/ui.cc
(gdb) 
318     in ../../src/ui.cc
(gdb) 
sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0xb8cf4fa8) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:104
104         }
(gdb) 
0xb7170f99 in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_mutex_unlock (mutex=0xb721dd6c) at pthread_mutex_unlock.c:290
290     pthread_mutex_unlock.c: No such file or directory.
(gdb) 
291     in pthread_mutex_unlock.c
(gdb) 
Cannot access memory at address 0xcf8
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd6c, decr=1) at pthread_mutex_unlock.c:36
36      in pthread_mutex_unlock.c
(gdb) 
37      in pthread_mutex_unlock.c
(gdb) 
36      in pthread_mutex_unlock.c
(gdb) 
__i686.get_pc_thunk.bx () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S:170
170     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S: No such file or directory.
(gdb) 
171     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd6c, decr=1) at pthread_mutex_unlock.c:37
37      pthread_mutex_unlock.c: No such file or directory.
(gdb) 
38      in pthread_mutex_unlock.c
(gdb) 
41      in pthread_mutex_unlock.c
(gdb) 
55      in pthread_mutex_unlock.c
(gdb) 
58      in pthread_mutex_unlock.c
(gdb) 
61      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
46      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
49      in pthread_mutex_unlock.c
(gdb) 
52      in pthread_mutex_unlock.c
(gdb) 
77      in pthread_mutex_unlock.c
(gdb) 
0xb7170dbb in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_mutex_lock (mutex=0xb721dd38) at pthread_mutex_lock.c:50
50      pthread_mutex_lock.c: No such file or directory.
(gdb) 
51      in pthread_mutex_lock.c
(gdb) 
50      in pthread_mutex_lock.c
(gdb) 
51      in pthread_mutex_lock.c
(gdb) 
54      in pthread_mutex_lock.c
(gdb) 
56      in pthread_mutex_lock.c
(gdb) 
54      in pthread_mutex_lock.c
(gdb) 
56      in pthread_mutex_lock.c
(gdb) 
61      in pthread_mutex_lock.c
(gdb) 
62      in pthread_mutex_lock.c
(gdb) 
125     in pthread_mutex_lock.c
(gdb) 
127     in pthread_mutex_lock.c
(gdb) 
125     in pthread_mutex_lock.c
(gdb) 
127     in pthread_mutex_lock.c
(gdb) 
131     in pthread_mutex_lock.c
(gdb) 
0xb7170ddb in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
(gdb) 
Single stepping until exit from function _ZN7cwidget8toplevel8mainloopEi,
which has no line number information.
__pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:101
101     pthread_cond_wait.c: No such file or directory.
(gdb) 
97      in pthread_cond_wait.c
(gdb) 
__i686.get_pc_thunk.bx () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S:170
170     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S: No such file or directory.
(gdb) 
171     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S
(gdb) 
__pthread_cond_wait (cond=0xb721dd08, mutex=0xb721dd38) at pthread_cond_wait.c:101
101     pthread_cond_wait.c: No such file or directory.
(gdb) 
105     in pthread_cond_wait.c
(gdb) 
108     in pthread_cond_wait.c
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=0) at pthread_mutex_unlock.c:37
37      pthread_mutex_unlock.c: No such file or directory.
(gdb) 
36      in pthread_mutex_unlock.c
(gdb) 
__i686.get_pc_thunk.bx () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S:170
170     ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S: No such file or directory.
(gdb) 
171     in ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_post.S
(gdb) 
__pthread_mutex_unlock_usercnt (mutex=0xb721dd38, decr=0) at pthread_mutex_unlock.c:37
37      pthread_mutex_unlock.c: No such file or directory.
(gdb) 
38      in pthread_mutex_unlock.c
(gdb) 
41      in pthread_mutex_unlock.c
(gdb) 
47      in pthread_mutex_unlock.c
(gdb) 
46      in pthread_mutex_unlock.c

I felt that, at that point, I'm already back in the mainloop for a
while and hence stopped the stepping. I hope that was enough to get a
clue what happened.

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-    |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5



More information about the Aptitude-devel mailing list