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

Daniel Hartwig mandyke at gmail.com
Wed Jul 11 05:07:34 BST 2012


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:
>
> While "q" still closes open tabs, it no more quits the program and hence
> the only chance to save my changes (e.g. marking stuff as automatically
> installed) is to make some changes which result in installing or
> removing a packages so that the state is saved on "gg".

I have never been able to reproduce this.  The logic for quitting is
more-or-less contained within src/ui.cc, around the function do_quit
and signal file_quit.  Inspecting that, I do not see any obvious
problems.

There were also no changes to that region between for 0.6.9.  In
main.cc there is a change in the way the shutdown is handled, though
this happens well after the ui has finished.

Axel, Matthew, could you please provide a copy of your apt config?
Aptitude 0.6.9-1~exp1 includes the undocumented command "aptitude
dump-config" which will show exactly what aptitude does see.

I do not think hardware is an issue as Axel's report indicates he is
running the same hardware as I (Kernel: Linux 3.4-trunk-686-pae (SMP
w/1 CPU core)).

Some debug information would be also be useful.  For reference, a
successful quit (though this does not look at problems related to
cwidget):

---
## Terminal A
# apt-get install aptitude-dbg
…
# gdbserver localhost:2345 aptitude
Process aptitude created; pid = 1921
Listening on port 2345
Remote debugging from host 127.0.0.1

## Terminal B
$ gdb aptitude
…
(gdb) target remote localhost:2345
…
(gdb) break do_quit
Breakpoint 1 at 0x8129db3: file ../../src/ui.cc, line 655.
(gdb) watch really_quit_active
Hardware watchpoint 2: really_quit_active
(gdb) c
Continuing.

## Terminal A
## Using program following Axel's instruction until problem
## should appear.
## Attempt to quit with Q.
## Frozen.

## Terminal B
Breakpoint 1, do_quit () at ../../src/ui.cc:655
655	  if(aptcfg->FindB(PACKAGE "::UI::Prompt-On-Exit", true))
(gdb) p really_quit_active
$1 = false
(gdb) c
Continuing.
Hardware watchpoint 2: really_quit_active

Old value = false
New value = true
do_quit () at ../../src/ui.cc:662
662			       cw::util::arg(sigc::bind(ptr_fun(do_really_quit_answer), false)));
(gdb) c
Continuing

## Terminal A
## Now I see the “Really quit” prompt and select Yes.
## Frozen.

## Terminal B
Hardware watchpoint 2: really_quit_active

Old value = true
New value = false
do_really_quit_answer (should_i_quit=true) at ../../src/ui.cc:649
649	  if(should_i_quit)
(gdb) c
Continuing.
[Inferior 1 (Remote target) exited normally]

## Terminal A
Child exited with status 0
GDBserver exiting
---





More information about the Aptitude-devel mailing list