[Aptitude-devel] Bug#816431: aptitude: crash (SIGFPE) on limit/filter (pressing L) in tree view

Jason Woofenden jason at jasonwoof.com
Tue Mar 1 19:57:57 UTC 2016


Package: aptitude
Version: 0.7.7-1
Severity: important

Dear Maintainer,

Aptitude crashes when I press L (lowercase), then type certain
strings into the "Enter the new package tree limit:" prompt.

Below is a table of strings I've tried, followed by whether it
crashed aptitude ("crash") or not ("happy"). Below that I have
pasted a full backtrace of the crash from the string "wine-dev".

	wine-dev  crash
	wine-development  crash
	wine-foo  happy (no packages match, but it doesn't crash)
	wine      happy
	wine-     crash
	win-      happy
	wine-development-foo   happy (no matches, no crash)
	wine-devfoo   happy (no matches, no crash)
	map       happy
	moop      crash
	moo       happy
	bar       happy
	baz       crash


I can't figure out the pattern of why it crashes for some input and
not others. But I do consistently get crashes on the input labeled
"crash" above, and consistently _don't_ get crashes on those
labeled "happy" above.

Please let me know if there is further testing or information
gathering I can do.

Thanks for all your work on this!

-- 
Jason





Enter the new package tree limit: wine-dev
                                          Program received signal SIGFPE, Arithmetic exception.
                                                                                               0x800b868e in pkg_tree::build_tree (this=0x80c129d0, progress=warning: RTTI symbol not found for class 'progress::progress_progress'
...) at ../../src/pkg_tree.cc:209
209 ../../src/pkg_tree.cc: No such file or directory.
(gdb) bt full
#0  0x800b868e in pkg_tree::build_tree (this=0x80c129d0, progress=warning: RTTI symbol not found for class 'progress::progress_progress'
...) at ../../src/pkg_tree.cc:209
        pkg = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package,
int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = 0xb40af054, Owner = 0x804c66f8}, HashIndex = 1344}
        it = {
          first = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = , Owner = }, HashIndex = 1344}, second = {ref = }}
        search_info = {ref = 0x80c1b600}
        matches = std::vector of length 5, capacity 8 = {{
            first = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = 0xb40af054, Owner = 0x804c66f8}, HashIndex = 1344}, second = {
              ref = 0x818d2fe0}}, {
            first = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = 0xb3d6301c, Owner = 0x804c66f8}, HashIndex = 28352}, second = {
              ref = 0x80c54528}}, {
            first = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = 0xb40af188, Owner = 0x804c66f8}, HashIndex = 32519}, second = {
              ref = 0x818d30a8}}, {
            first = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = 0xb40af15c, Owner = 0x804c66f8}, HashIndex = 35952}, second = {
              ref = 0x80c19130}}, {
            first = {<pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>> = {<std::iterator<std::forward_iterator_tag, pkgCache::Package, int, pkgCache::Package*, pkgCache::Package&>> = {<No data fields>}, S = 0xb418f514, Owner = 0x804c66f8}, HashIndex = 43676}, second = {
              ref = 0x818d2db0}}}
        num = 1
        total = 5
        update_progress_10pct = 0
        empty = true
        mytree = 0x818d2860
        cache_empty = false
        grouper = 0x80c12cd8
        sorter = {<cwidget::widgets::sortpolicy> = {_vptr.sortpolicy = 0xb40af054}, chain = 0x804c66f8}
        rval = <optimized out>
#1  0x800b8f92 in pkg_tree::build_tree (this=0x80c129d0) at ../../src/pkg_tree.cc:272
        p = {ref = 0x80c56988}
        rval = <optimized out>
#2  0x800b95ce in pkg_tree::set_limit (this=0x80c129d0, _limit=L"wine-dev") at ../../src/pkg_tree.cc:289
        old_limit = {ref = 0x0}
        old_limitstr = L""
        new_limit = {ref = 0x80e0de00}
#3  0x800b9c35 in sigc::bound_mem_functor1<void, pkg_tree, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&>::operator() (_A_a1=..., this=0x812a0944) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1856
No locals.
#4  sigc::adaptor_functor<sigc::bound_mem_functor1<void, pkg_tree, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&> >::operator()<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&> (
    _A_arg1=L"wine-dev", this=0x812a0940) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:89
No locals.
#5  sigc::internal::slot_call1<sigc::bound_mem_functor1<void, pkg_tree, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&>, void, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >::call_it (
    rep=0x812a0928, a_1=...) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:142
        typed_rep = 0x812a0928
#6  0xb7d46630 in cwidget::widgets::editline::handle_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#7  0xb7db5b3b in cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#8  0xb7d83c38 in cwidget::widgets::passthrough::handle_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#9  0xb7db5b3b in cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#10 0xb7d9b404 in cwidget::widgets::table::handle_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#11 0xb7db5b3b in cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#12 0xb7d83c38 in cwidget::widgets::passthrough::handle_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#13 0xb7db5b3b in cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#14 0xb7d6021c in cwidget::widgets::menubar::handle_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#15 0xb7db5b3b in cwidget::widgets::widget::dispatch_key(cwidget::config::key const&) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#16 0xb7d27b51 in cwidget::toplevel::input_thread::get_input_event::dispatch() () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#17 0xb7d1ebef in cwidget::toplevel::mainloop(int) () from /usr/lib/i386-linux-gnu/libcwidget.so.3
No symbol table info available.
#18 0x80113a6c in ui_main () at ../../src/ui.cc:2965
        clearer = {<No data fields>}
#19 0x80030f8e in main (argc=1, argv=0xbffff704) at ../../src/main.cc:1387
        p = {ref = 0x0}
        rootdir = <optimized out>
        status_fname = <optimized out>
        package_display_format = "%c%a%M %p# - %d#"
        version_display_format = "%c%a%M %p# %t %i"
        group_by_mode_string = "auto"
        show_package_names_mode_string = "auto"
        sort_policy = "name,version"
        width = ""
        log_file = ""
        simulate = <optimized out>
        download_only = <optimized out>
        arch_only = <optimized out>
        update_only = <optimized out>
        install_only = <optimized out>
        queue_only = <optimized out>
        autoclean_only = <optimized out>
        clean_only = <optimized out>
        assume_yes = <optimized out>
        fix_broken = <optimized out>
        safe_resolver_no_new_installs = <optimized out>
        safe_resolver_no_new_upgrades = <optimized out>
        safe_resolver_show_resolver_actions = <optimized out>
        resolver_mode = <optimized out>
        disable_columns = <optimized out>
        showvers = <optimized out>
        showdeps = <optimized out>
        showsize = <optimized out>
        showwhy = <optimized out>
        show_why_summary_mode = "no-summary"
        visual_preview = <optimized out>
        always_prompt = <optimized out>
        verbose = <optimized out>
        seen_quiet = <optimized out>
        quiet = <optimized out>
        user_tags = std::vector of length 0, capacity 0
        curopt = <optimized out>
        group_by_mode = <optimized out>
        show_package_names_mode = <optimized out>
        why_display_mode = <optimized out>
        debug_search = <optimized out>
        curr_quiet = <optimized out>



-- Package-specific info:
Terminal: st-256color
$DISPLAY is set.
which aptitude: /usr/bin/aptitude

aptitude version information:
aptitude 0.7.7
Compiler: g++ 5.3.1 20160224
Compiled against:
  apt version 5.0.0
  NCurses version 6.0
  libsigc++ version: 2.6.2
  Gtk+ support disabled.
  Qt support disabled.

Current library versions:
  NCurses version: ncurses 6.0.20160213
  cwidget version: 0.5.17
  Apt version: 5.0.0

aptitude linkage:
	linux-gate.so.1 (0xb77c6000)
	libapt-pkg.so.5.0 => /usr/lib/i386-linux-gnu/libapt-pkg.so.5.0 (0xb7248000)
	libncursesw.so.5 => /lib/i386-linux-gnu/libncursesw.so.5 (0xb7213000)
	libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xb71ee000)
	libsigc-2.0.so.0 => /usr/lib/i386-linux-gnu/libsigc-2.0.so.0 (0xb71e7000)
	libcwidget.so.3 => /usr/lib/i386-linux-gnu/libcwidget.so.3 (0xb70e4000)
	libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0xb7002000)
	libboost_iostreams.so.1.58.0 => /usr/lib/i386-linux-gnu/libboost_iostreams.so.1.58.0 (0xb6fe9000)
	libboost_filesystem.so.1.58.0 => /usr/lib/i386-linux-gnu/libboost_filesystem.so.1.58.0 (0xb6fcf000)
	libboost_system.so.1.58.0 => /usr/lib/i386-linux-gnu/libboost_system.so.1.58.0 (0xb6fca000)
	libxapian.so.22 => /usr/lib/i386-linux-gnu/sse2/libxapian.so.22 (0xb6dc0000)
	libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb6da3000)
	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb6c33000)
	libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb6be5000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6bc8000)
	libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb6a10000)
	libutil.so.1 => /lib/i386-linux-gnu/i686/cmov/libutil.so.1 (0xb6a0c000)
	libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xb6a07000)
	libresolv.so.2 => /lib/i386-linux-gnu/i686/cmov/libresolv.so.2 (0xb69ee000)
	libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb69d1000)
	libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xb69be000)
	liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xb6995000)
	liblz4.so.1 => /usr/lib/i386-linux-gnu/liblz4.so.1 (0xb6982000)
	librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb6978000)
	libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb6972000)
	/lib/ld-linux.so.2 (0x8002c000)

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 4.4.0-1-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages aptitude depends on:
ii  aptitude-common            0.7.7-1
ii  libapt-pkg5.0              1.2.4
ii  libboost-filesystem1.58.0  1.58.0+dfsg-5+b1
ii  libboost-iostreams1.58.0   1.58.0+dfsg-5+b1
ii  libboost-system1.58.0      1.58.0+dfsg-5+b1
ii  libc6                      2.21-9
ii  libcwidget3v5              0.5.17-4+b1
ii  libgcc1                    1:5.3.1-10
ii  libncursesw5               6.0+20160213-1
ii  libsigc++-2.0-0v5          2.6.2-1
ii  libsqlite3-0               3.11.0-2
ii  libstdc++6                 5.3.1-10
ii  libtinfo5                  6.0+20160213-1
ii  libxapian22v5              1.2.22-3

Versions of packages aptitude recommends:
pn  aptitude-doc-en | aptitude-doc  <none>
pn  libparse-debianchangelog-perl   <none>
ii  sensible-utils                  0.0.9

Versions of packages aptitude suggests:
pn  apt-xapian-index  <none>
pn  debtags           <none>
ii  tasksel           3.34

-- no debconf information



More information about the Aptitude-devel mailing list