Package: aptitude
Version: 0.8.6-1
Severity: normal

Hi,

I just ran into a corner case which causes a crash of aptitude:

→ env LANG=foobar aptitude changelog aptitude
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
[1]    10697 abort (core dumped)  env LANG=foobar aptitude changelog aptitude

The crash can be triggered with both, trying to download a changelog
from within the TUI (by pressing "C") or from the commandline as shown
above.

Backtrace:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1  0x00007fbff991a40a in __GI_abort () at abort.c:89
#2  0x00007fbffa2300ad in __gnu_cxx::__verbose_terminate_handler() () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007fbffa22e066 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fbffa22e0b1 in std::terminate() () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007fbffa22e2c9 in __cxa_throw () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007fbffa256d0f in std::__throw_runtime_error(char const*) () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007fbffa250024 in 
std::locale::facet::_S_create_c_locale(__locale_struct*&, char const*, 
__locale_struct*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x00007fbffa242159 in std::locale::_Impl::_Impl(char const*, unsigned long) 
() from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007fbffa2433cc in std::locale::locale(char const*) () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007fbffad69123 in boost::filesystem::path::codecvt() () from 
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.62.0
#11 0x00007fbffad69c05 in 
boost::filesystem::detail::unique_path(boost::filesystem::path const&, 
boost::system::error_code*) () from 
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.62.0
#12 0x000056082c80cc1e in boost::filesystem::unique_path (p=...) at 
/usr/include/boost/filesystem/operations.hpp:723
#13 aptitude::util::create_temporary_changelog_dir[abi:cxx11]() () at 
../../../../src/generic/util/util.cc:511
#14 0x000056082c71999e in aptitude::(anonymous 
namespace)::download_thread::start_download_job 
(uri="gzip:///usr/share/doc/aptitude/changelog.Debian.gz", 
short_description="Changelog of aptitude", callbacks=std::shared_ptr (count 3, 
weak 1) 0x56082d24e4e8, post_thunk=0x56082c662780 
<aptitude::cmdline::post_thunk(sigc::slot<void, sigc::nil, sigc::nil, 
sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> const&)>) at 
../../../../src/generic/apt/download_queue.cc:957
#15 0x000056082c71a5bd in aptitude::queue_download 
(uri="gzip:///usr/share/doc/aptitude/changelog.Debian.gz", 
short_description="Changelog of aptitude", callbacks=std::shared_ptr (count 3, 
weak 1) 0x56082d24e4e8, post_thunk=<optimized out>) at 
../../../../src/generic/apt/download_queue.cc:1190
#16 0x000056082c7365d2 in aptitude::apt::(anonymous 
namespace)::changelog_download::failure (this=0x56082d24e4d0, msg=...) at 
../../../../src/generic/apt/pkg_changelog.cc:318
#17 0x000056082c662576 in sigc::slot0<void>::operator() (this=0x7ffdfbaeb080) 
at /usr/include/sigc++-2.0/sigc++/functors/slot.h:513
#18 aptitude::cmdline::(anonymous namespace)::event_loop::run 
(this=0x56082cb12c40 <aptitude::cmdline::(anonymous 
namespace)::global_event_loop>) at ../../../src/cmdline/cmdline_main_loop.cc:88
#19 aptitude::cmdline::main_loop () at 
../../../src/cmdline/cmdline_main_loop.cc:109
#20 0x000056082c64b424 in (anonymous namespace)::get_changelog 
(info=std::shared_ptr (count 1, weak 0) 0x56082d24e3d0, 
term_metrics=std::shared_ptr (count 3, weak 0) 0x56082cdd4370) at 
../../../src/cmdline/cmdline_changelog.cc:204
#21 0x000056082c64bd4b in (anonymous namespace)::get_changelog 
(term_metrics=std::shared_ptr (count 3, weak 0) 0x56082cdd4370, ver=...) at 
../../../src/cmdline/cmdline_changelog.cc:228
#22 do_cmdline_changelog (packages=std::vector of length 1, capacity 1 = {...}, 
term_metrics=std::shared_ptr (count 3, weak 0) 0x56082cdd4370) at 
../../../src/cmdline/cmdline_changelog.cc:340
#23 0x000056082c64ce0b in cmdline_changelog (argc=<optimized out>, 
argv=<optimized out>) at ../../../src/cmdline/cmdline_changelog.cc:421
#24 0x000056082c560401 in main (argc=3, argv=<optimized out>) at 
../../src/main.cc:1288

I noticed this because I switched from locales to
open-infrastructure-locales-c.utf-8 (on a different machine than the one
I'm reporting from) but didn't change the value of $LANG in a already
running shell.

In the end I found out that open-infrastructure-locales-c.utf-8 is not
necessary to reproduce this, just an invalid (or no more valid) setting
in $LANG.

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

aptitude version information:
aptitude 0.8.6
Compiler: g++ 6.3.0 20170221
Compiled against:
  apt version 5.0.1
  NCurses version 6.0
  libsigc++ version: 2.10.0
  Gtk+ support disabled.
  Qt support disabled.

Current library versions:
  NCurses version: ncurses 6.0.20161126
  cwidget version: 0.5.17
  Apt version: 5.0.1

aptitude linkage:
        linux-vdso.so.1 (0x00007fffda44f000)
        libgtk3-nocsd.so.0 => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 
(0x00007f205672c000)
        libapt-pkg.so.5.0 => /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0 
(0x00007f205637a000)
        libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 
(0x00007f205614a000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 
(0x00007f2055f20000)
        libsigc-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0 
(0x00007f2055d19000)
        libcwidget.so.3 => /usr/lib/x86_64-linux-gnu/libcwidget.so.3 
(0x00007f2055a1a000)
        libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 
(0x00007f2055712000)
        libboost_iostreams.so.1.62.0 => 
/usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.62.0 (0x00007f20554fa000)
        libboost_filesystem.so.1.62.0 => 
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.62.0 (0x00007f20552e1000)
        libboost_system.so.1.62.0 => 
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.62.0 (0x00007f20550dd000)
        libxapian.so.30 => /usr/lib/x86_64-linux-gnu/libxapian.so.30 
(0x00007f2054cc9000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x00007f2054aaa000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
(0x00007f2054728000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2054424000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007f205420d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2053e6f000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2053c6b000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 
(0x00007f2053a52000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2053838000)
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 
(0x00007f2053628000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f2053402000)
        liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 
(0x00007f20531f0000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2052fe8000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f2052de1000)
        /lib64/ld-linux-x86-64.so.2 (0x000055c51d666000)
-- System Information:
Debian Release: 9.0
  APT prefers unstable
  APT policy: (990, 'unstable'), (600, 'testing'), (500, 'unstable-debug'), 
(500, 'buildd-unstable'), (110, 'experimental'), (1, 'experimental-debug'), (1, 
'buildd-experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages aptitude depends on:
ii  aptitude-common            0.8.6-1
ii  libapt-pkg5.0              1.4
ii  libboost-filesystem1.62.0  1.62.0+dfsg-4
ii  libboost-iostreams1.62.0   1.62.0+dfsg-4
ii  libboost-system1.62.0      1.62.0+dfsg-4
ii  libc6                      2.24-9
ii  libcwidget3v5              0.5.17-4+b1
ii  libgcc1                    1:6.3.0-12
ii  libncursesw5               6.0+20161126-1
ii  libsigc++-2.0-0v5          2.10.0-1
ii  libsqlite3-0               3.16.2-3
ii  libstdc++6                 6.3.0-12
ii  libtinfo5                  6.0+20161126-1
ii  libxapian30                1.4.3-2

Versions of packages aptitude recommends:
ii  libparse-debianchangelog-perl  1.2.0-12
ii  sensible-utils                 0.0.9

Versions of packages aptitude suggests:
ii  apt-xapian-index                0.49
ii  aptitude-doc-en [aptitude-doc]  0.8.6-1
ii  debtags                         2.1.2
pn  tasksel                         <none>

-- no debconf information

Reply via email to