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

Matthew W.S. Bell matthew at bells23.org.uk
Thu Jul 12 20:21:11 BST 2012


Hi,

I've upgraded from 0.6.4-1.2 some time ago (I'm now on 0.6.8-1), and
additionally have not experienced the originally reported symptoms in
some time; however, I do not know if the two are correlated.

aptitude dump-config:
---
APT "";
APT::Architecture "amd64";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "false";
APT::Install-Suggests "0";
APT::Authentication "";
APT::Authentication::TrustCDROM "true";
APT::NeverAutoRemove "";
APT::NeverAutoRemove:: "^firmware-linux.*";
APT::NeverAutoRemove:: "^linux-firmware$";
APT::NeverAutoRemove:: "^linux-image.*";
APT::NeverAutoRemove:: "^kfreebsd-image.*";
APT::NeverAutoRemove:: "^linux-restricted-modules.*";
APT::NeverAutoRemove:: "^linux-ubuntu-modules-.*";
APT::NeverAutoRemove:: "^gnumach$";
APT::NeverAutoRemove:: "^gnumach-image.*";
APT::Never-MarkAuto-Sections "";
APT::Never-MarkAuto-Sections:: "metapackages";
APT::Never-MarkAuto-Sections:: "restricted/metapackages";
APT::Never-MarkAuto-Sections:: "universe/metapackages";
APT::Never-MarkAuto-Sections:: "multiverse/metapackages";
APT::Never-MarkAuto-Sections:: "oldlibs";
APT::Never-MarkAuto-Sections:: "restricted/oldlibs";
APT::Never-MarkAuto-Sections:: "universe/oldlibs";
APT::Never-MarkAuto-Sections:: "multiverse/oldlibs";
APT::Compressor "";
APT::Compressor::lzma "";
APT::Compressor::lzma::Binary "xz";
APT::Compressor::lzma::CompressArg "";
APT::Compressor::lzma::CompressArg:: "--format=lzma";
APT::Compressor::lzma::CompressArg:: "-9";
APT::Compressor::lzma::UncompressArg "";
APT::Compressor::lzma::UncompressArg:: "--format=lzma";
APT::Compressor::lzma::UncompressArg:: "-d";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::mirrors "mirrors/";
Dir::State::extended_states "extended_states";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::netrc "auth.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Etc::preferencesparts "preferences.d";
Dir::Etc::trusted "trusted.gpg";
Dir::Etc::trustedparts "trusted.gpg.d";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::solvers "";
Dir::Bin::solvers:: "/usr/lib/apt/solvers";
Dir::Bin::dpkg "/usr/bin/dpkg";
Dir::Bin::bzip2 "/bin/bzip2";
Dir::Bin::xz "/usr/bin/xz";
Dir::Media "";
Dir::Media::MountPath "/media/cdrom";
Dir::Log "var/log/apt";
Dir::Log::Terminal "term.log";
Dir::Log::History "history.log";
Dir::Ignore-Files-Silently "";
Dir::Ignore-Files-Silently:: "~$";
Dir::Ignore-Files-Silently:: "\.disabled$";
Dir::Ignore-Files-Silently:: "\.bak$";
Dir::Ignore-Files-Silently:: "\.dpkg-[a-z]+$";
Dir::Ignore-Files-Silently:: "\.save$";
Dir::Ignore-Files-Silently:: "\.orig$";
Acquire "";
Acquire::cdrom "";
Acquire::cdrom::mount "/media/cdrom";
DPkg "";
DPkg::Pre-Install-Pkgs "";
DPkg::Pre-Install-Pkgs:: "/usr/bin/apt-listchanges --apt || test $? -ne 10";
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
DPkg::Tools "";
DPkg::Tools::Options "";
DPkg::Tools::Options::/usr/bin/apt-listchanges "";
DPkg::Tools::Options::/usr/bin/apt-listchanges::Version "2";
Unattended-Upgrade "";
Unattended-Upgrade::Origins-Pattern "";
Unattended-Upgrade::Origins-Pattern:: "origin=Debian,archive=stable,label=Debian-Security";
Aptitude "";
Aptitude::Sections "";
Aptitude::Sections::Top-Sections "";
Aptitude::Sections::Top-Sections:: "main";
Aptitude::Sections::Top-Sections:: "contrib";
Aptitude::Sections::Top-Sections:: "non-free";
Aptitude::Sections::Top-Sections:: "non-US";
Aptitude::Sections::Descriptions "";
Aptitude::Sections::Descriptions::Unknown "Packages with no declared section\n No section is given for these packages. Perhaps there is an error in the Packages file?";
Aptitude::Sections::Descriptions::Virtual "Virtual packages\n These packages do not exist; they are names other packages use to require or provide some functionality.";
Aptitude::Sections::Descriptions::Tasks "Packages which set up your computer to perform a particular task\n Packages in the 'Tasks' section contain no files; they merely depend upon other packages. These packages provide an easy way to select a predefined set of packages for a specialized task.";
Aptitude::Sections::Descriptions::admin "Administrative utilities (install software, manage users, etc)\n Packages in the 'admin' section allow you to perform administrative tasks such as installing software, managing users, configuring and monitoring your system, examining network traffic, and so on.";
Aptitude::Sections::Descriptions::alien "Packages converted from foreign formats (rpm, tgz, etc)\n Packages in the 'alien' section were created by the 'alien' program from a non-Debian package format such as RPM";
Aptitude::Sections::Descriptions::base "The Debian base system\n Packages in the 'base' section are part of the initial system installation.";
Aptitude::Sections::Descriptions::cli-mono "Mono and the Common Language Infrastructure\n Packages in the 'cli-mono' section provide open source implementation of Microsoft's .NET development framework based on the ECMA standards for C# and the Common Language Runtime.  Unless you are a .NET programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::comm "Programs for faxmodems and other communication devices\n Packages in the 'comm' section are used to control modems and other hardware communications devices. This includes software to control faxmodems (for instance, PPP for dial-up internet connections and programs originally written for that purpose, such as zmodem/kermit), as well as software to control cellular phones, interface with FidoNet, and run a BBS.";
Aptitude::Sections::Descriptions::database "Database servers and tools\n Packages in the 'database' section contain database engines such as PostgreSQL and SQLite, database clients, and database management tools.";
Aptitude::Sections::Descriptions::debug "Debugging symbols\n Packages in the 'debug' section contain files required for debugging programs.  You don't need packages from this section unless you want to debug a particular piece of software.";
Aptitude::Sections::Descriptions::devel "Utilities and programs for software development\n Packages in the 'devel' section are used to write new software and work on existing software. Non-programmers who do not compile their own software probably do not need much software from this section.\n .\n It includes compilers, debugging tools, programmer's editors, source processing tools, and other things related to software development.";
Aptitude::Sections::Descriptions::doc "Documentation and specialized programs for viewing documentation\n Packages in the 'doc' section document parts of the Debian system, or are viewers for documentation formats.";
Aptitude::Sections::Descriptions::editors "Text editors and word processors\n Packages in the 'editors' section allow you to edit plain ASCII text. These are not necessarily word processors, although some word processors may be found in this section.";
Aptitude::Sections::Descriptions::electronics "Programs for working with circuits and electronics\n Packages in the 'electronics' section include circuit design tools, simulators and assemblers for microcontrollers, and other related software.";
Aptitude::Sections::Descriptions::embedded "Programs for embedded systems\n Packages in the 'embedded' section are meant to run on embedded devices. Embedded devices are specialized hardware devices with much less power than a typical desktop system: for instance, a PDA, a cell phone, or a Tivo.";
Aptitude::Sections::Descriptions::fonts "Fonts and font utilities\n Packages in the 'fonts' section contain fonts in various formats as well as tools to manage them.";
Aptitude::Sections::Descriptions::games "Games, toys, and fun programs\n Packages in the 'games' section are meant primarily for entertainment.";
Aptitude::Sections::Descriptions::gnome "The GNOME Desktop Environment\n GNOME is a collection of software which provides an easy-to-use desktop.  Packages in the 'gnome' section are part of the GNOME environment or closely integrated into it.";
Aptitude::Sections::Descriptions::gnu-r "The GNU R statistical computation and graphics system\n GNU R is a free software environment for statistical computing and graphics. Packages in the 'gnu-r' section contain the GNU R system and many third-party libraries for it.";
Aptitude::Sections::Descriptions::gnustep "The GNUstep Environment\n GNUstep is a cross-platform, object-oriented framework for desktop application development.  Packages in the 'gnustep' section are part of the GNUstep framework or closely integrated into it.";
Aptitude::Sections::Descriptions::graphics "Utilities to create, view, and edit graphics files\n Packages in the 'graphics' section include viewers for image files, image processing and manipulation software, software to interact with graphics hardware (such as video cards, scanners, and digital cameras), and programming tools for handling graphics.";
Aptitude::Sections::Descriptions::hamradio "Software for ham radio operators\n Packages in the 'hamradio' section are meant primarily for ham radio operators.";
Aptitude::Sections::Descriptions::haskell "Haskell programming language and libraries\n Packages in the 'haskell' section provide the Haskell programming language and many third-party libraries for it. Unless you are a Haskell programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::httpd "Webservers and their modules\n Packages in the 'httpd' section contain Web servers suitable for environments from embedded systems to the largest servers on the Internet.";
Aptitude::Sections::Descriptions::interpreters "Interpreters for interpreted languages\n Packages in the 'interpreters' section include interpreters for languages like Lua, Pike, Smalltalk and Tcl, and libraries for these same languages. Some interpreted languages with many libraries like Perl, Python and Ruby have their own sections.";
Aptitude::Sections::Descriptions::java "Java programming language and libraries\n Packages in the 'java' section provide the Java programming language and many third-party libraries for it. Unless you are a Java programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::kernel "Kernel and kernel modules\n Packages in the 'kernel' section provide the core of the operating system.  They include the operating system kernel itself, along with extension modules providing features such as support for unusual hardware and support for running virtual machines.";
Aptitude::Sections::Descriptions::kde "The KDE Desktop Environment\n KDE is a collection of software which provides an easy-to-use desktop.  Packages in the 'kde' section are part of the KDE environment or closely integrated into it.";
Aptitude::Sections::Descriptions::libdevel "Development files for libraries\n Packages in the 'libdevel' section contain files required for building programs that use libraries in the 'libs' section.  You don't need packages from this section unless you want to compile software yourself.";
Aptitude::Sections::Descriptions::libs "Collections of software routines\n Packages in the 'libs' section provide necessary functionality for other software on the computer. With very few exceptions, you should not need to explicitly install a package from this section; the package system will install them as required to fulfill dependencies.";
Aptitude::Sections::Descriptions::lisp "Lisp programming language and libraries\n Packages in the 'lisp' section provide the Lisp programming language and many third-party libraries for it. Unless you are a Lisp programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::localization "Language packs\n Packages in the 'localization' section contain translations of the included software to different languages.\n.\n Please note that many programs contain translations directly within their package, so if you do not see the appropriate localization package here, there is still a chance the software will be translated to your language anyway.";
Aptitude::Sections::Descriptions::mail "Programs to write, send, and route email messages\n Packages in the 'mail' section include mail readers, mail transport daemons, mailing list software, and spam filters, as well as various other software related to electronic mail.";
Aptitude::Sections::Descriptions::math "Numeric analysis and other mathematics-related software\n Packages in the 'math' section include calculators, languages for mathematical computation (similar to Mathematica), symbolic algebra packages, and programs to visualize mathematical objects.";
Aptitude::Sections::Descriptions::misc "Miscellaneous software\n Packages in the 'misc' section have too unusual a function to be classified.";
Aptitude::Sections::Descriptions::net "Programs to connect to and provide various services\n Packages in the 'net' section include clients and servers for many protocols, tools to manipulate and debug low-level network protocols, IM systems, and other network-related software.";
Aptitude::Sections::Descriptions::news "Usenet clients and servers\n Packages in the 'news' section are related to the Usenet distributed news system.  They include news readers and news servers.";
Aptitude::Sections::Descriptions::ocaml "OCaml programming language and libraries\n Packages in the 'ocaml' section provide the OCaml programming language and many third-party libraries for it. Unless you are a OCaml programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::oldlibs "Obsolete libraries\n Packages in the 'oldlibs' section are obsolete and should not be used by new software.  They are provided for compatibility reasons, or because software distributed by Debian still requires them.\n .\n With very few exceptions, you should not need to explicitly install a package from this section; the package system will install them as required to fulfill dependencies.";
Aptitude::Sections::Descriptions::otherosfs "Emulators and software to read foreign filesystems\n Packages in the 'otherosfs' section emulate hardware and operating systems and provide tools for transferring data between different operating systems and hardware platforms. (for instance, utilities to read DOS floppies, and utilities to communicate with Palm Pilots)\n .\n It is worth noting that CD burning software is included in THIS section.";
Aptitude::Sections::Descriptions::perl "Perl programming language and libraries\n Packages in the 'perl' section provide the Perl programming language and many third-party libraries for it. Unless you are a Perl programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::php "PHP programming language and libraries\n Packages in the 'php' section provide the PHP programming language and many third-party libraries for it. Unless you are a PHP programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::python "Python programming language and libraries\n Packages in the 'python' section provide the Python programming language and many third-party libraries for it. Unless you are a Python programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::ruby "Ruby programming language and libraries\n Packages in the 'ruby' section provide the Ruby programming language and many third-party libraries for it. Unless you are a Ruby programmer, you don't need to install packages from this section explicitly; the package system will install them if they are required.";
Aptitude::Sections::Descriptions::science "Software for scientific work\n Packages in the 'science' section include tools for astronomy, biology, and chemistry, as well as other science-related software.";
Aptitude::Sections::Descriptions::shells "Command shells and alternative console environments\n Packages in the 'shells' section include programs providing a command-line interface.";
Aptitude::Sections::Descriptions::sound "Utilities to play and record sound\n Packages in the 'sound' section include sound players, recorders, and encoders for many formats, mixers and volume controls, MIDI sequencers and programs to generate musical notation, drivers for sound hardware, and sound processing software.";
Aptitude::Sections::Descriptions::tex "The TeX typesetting system\n Packages in the 'tex' section are related to TeX, a system for producing high-quality typeset output.  They include TeX itself, TeX packages, editors designed for TeX, utilities to convert TeX and TeX output files to various formats, TeX fonts, and other software related to TeX.";
Aptitude::Sections::Descriptions::text "Text processing utilities\n Packages in the 'text' section include text filters and processors, spelling checkers, dictionary programs, utilities to convert between character encodings and text file formats (eg, Unix and DOS), text formatters and pretty-printers, and other software which operates on plain text.";
Aptitude::Sections::Descriptions::utils "Various system utilities\n Packages in the 'utils' section are utilities whose purpose is too unique to be classified.";
Aptitude::Sections::Descriptions::video "Utilities to record, view, edit, and stream video files\n Packages in the 'video' section include software to watch video files, DVDs, and TV and video processing and manipulaton software.  Using these tools it is possible to build a complete video authoring studio or home multimedia center.";
Aptitude::Sections::Descriptions::vcs "Version control systems\n Packages in the 'vcs' section contain software that is used for managing changes to documents, programs, and other computer files, providing a convenient way to retrieve old versions or to track different lines of development.";
Aptitude::Sections::Descriptions::web "Web browsers, servers, proxies, and other tools\n Packages in the 'web' section include Web browsers, Web servers and proxies, software to write CGI scripts or Web-based programs, pre-written Web-based programs, and other software related to the World Wide Web.";
Aptitude::Sections::Descriptions::x11 "The X window system and related software\n Packages in the 'x11' section include the core packages for the X window system, window managers, utility programs for X, and miscellaneous programs with an X GUI which were placed here because they didn't fit anywhere else.";
Aptitude::Sections::Descriptions::xfce "The Xfce Desktop Environment\n Xfce is a collection of software which provides an easy-to-use desktop.  Packages in the 'xfce' section are part of the Xfce environment or closely integrated into it.";
Aptitude::Sections::Descriptions::zope "Zope/Plone framework\n Packages in the 'zope' section provide application server for building content management systems, intranets, portals, and custom applications. One such a content management system build upon Zope is Plone.";
Aptitude::Sections::Descriptions::main "The main Debian archive\n The Debian distribution consists of packages from the 'main' section. Every package in 'main' is Free Software.\n .\n For more information about what Debian considers to be Free Software, see http://www.debian.org/social_contract#guidelines";
Aptitude::Sections::Descriptions::contrib "Programs which depend on software not in Debian\n Packages in the 'contrib' section are not part of Debian.\n .\n These packages are Free Software, but they depend on software which is not part of Debian.  This may be because it is not Free Software, but is packaged in the non-free section of the archive, because Debian cannot distribute it at all, or (in rare cases) because no-one has packaged it yet.\n .\n For more information about what Debian considers to be Free Software, see http://www.debian.org/social_contract#guidelines";
Aptitude::Sections::Descriptions::non-free "Programs which are not free software\n Packages in the 'non-free' section are not part of Debian.\n .\n These packages fail to meet one or more of the requirements of the Debian Free Software Guidelines (see below). You should read the license of programs in this section to be sure that you are allowed to use them in the way you intend.\n .\n For more information about what Debian considers to be Free Software, see http://www.debian.org/social_contract#guidelines";
Aptitude::Sections::Descriptions::non-US "Programs stored outside the US due to export controls\n Packages in 'non-US' likely contain cryptography; a few implement patented algorithms. Because of this, they cannot be exported from the United States, and hence are stored on a server in the ''free world''.\n .\n Note: the Debian Project is currently merging cryptographic software into the US-based archives after consulting with legal experts about recent changes in export policies. Most packages which were formerly found in this section, therefore, are now in 'main'.";
Aptitude::Keep-Unused-Pattern "";
Aptitude::Delete-Unused-Pattern "";
Aptitude::UI "";
Aptitude::UI::HelpBar "false";
Aptitude::UI::Menubar-Autohide "true";
Aptitude::UI::Minibuf-Prompts "true";
Aptitude::UI::InfoAreaTabs "true";
Aptitude::ProblemResolver "";
Aptitude::ProblemResolver::Allow-Break-Holds "false";
Aptitude::Forget-New-On-Install "true";
RootDir "";
CommandLine "";
CommandLine::AsString "aptitude dump-config";
quiet "1";
---

Thanks,
Matthew

On Wed, 2012-07-11 at 12:07 +0800, 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:
> >
> > 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
> ---

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/aptitude-devel/attachments/20120712/a41148dc/attachment.pgp>


More information about the Aptitude-devel mailing list