[Aptitude-devel] Bug#809184: "aptitude changelog" aborts with "Illegal instruction"

Manuel A. Fernandez Montecelo manuel.montezelo at gmail.com
Tue Dec 29 23:11:54 UTC 2015


2015-12-29 17:48 Bjarni Ingi Gislason:
>On Mon, Dec 28, 2015 at 10:25:07AM +0800, Paul Wise wrote:
>> On Mon, 28 Dec 2015 01:57:25 +0000 Bjarni Ingi Gislason wrote:
>>
>> >   aptitude changelog apt ...
>>
>> Does this always produce the same outcome?
>>
>
>  Yes, at least three times.
>
>> >   Output was "Illegal instruction" with a return value of 132.
>> ...
>> > Architecture: i386 (i586)
>>
>> There are some things that would help the aptitude maintainers figure
>> out what the problem is:
>>
>> Send the output of this command:
>>
>> cat /proc/cpuinfo
>>
>
>processor	: 0
>vendor_id	: AuthenticAMD
>cpu family	: 5
>model		: 8
>model name	: AMD-K6(tm) 3D processor
>stepping	: 12
>cpu MHz		: 331.579
>cache size	: 64 KB
>fdiv_bug	: no
>f00f_bug	: no
>coma_bug	: no
>fpu		: yes
>fpu_exception	: yes
>cpuid level	: 1
>wp		: yes
>flags		: fpu vme de pse tsc msr cx8 pge mmx syscall 3dnow k6_mtrr vmmcall
>bogomips	: 663.15
>clflush size	: 32
>cache_alignment	: 32
>address sizes	: 32 bits physical, 32 bits virtual
>power management:
>
>> Enable the debug repo, install debug symbols, gdb and make a backtrace:
>>
>> Create this file:
>>
>> /etc/apt/sources.list.d/04-debian-debug.sources
>>
>
>  Error from apt-get.
>
>  The line must end with ".list"
>
>> Put this line in it:
>>
>> deb http://debug.mirrors.debian.org/debian-debug/ unstable-debug main
>>
>
>  Error from apt-get.
>
>  The URL may not end with "/".
>
>> Update the apt cache:
>>
>> sudo apt-get update
>>
>> Install the gdb debugger and debug symbols:
>>
>> sudo apt-get install gdb aptitude-dbg libapt-pkg5.0-dbgsym libboost1.58-dbg libc6-dbg libncursesw5-dbg libgcc1-dbg libsqlite3-0-dbg libstdc++6-5-dbg libtinfo5-dbg libxapian22v5-dbg
>>
>> Run the debugger and get a crash trace:
>>
>> gdb -batch -n -ex 'set height 0' -ex run -ex bt -ex 'thread apply all bt full' --args aptitude changelog apt
>>
>
>  Running just "aptitude" shows no error (no command issued except "q").
>
>  Running "aptitude changelog" (no furter arguments) returns normally
>with no output.
>
>  Running "aptitude changelog apt" in a writable directory gives a core
>dump.
>
>  "gdb --core=core" shows:
>
>Script started on þri 29. des 2015, kl. 04.08.33 GMT
>$ gdb --core=core
>GNU gdb (Debian 7.10-1) 7.10
>Copyright (C) 2015 Free Software Foundation, Inc.
>License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>This is free software: you are free to change and redistribute it.
>There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>and "show warranty" for details.
>This GDB was configured as "i586-linux-gnu".
>Type "show configuration" for configuration details.
>For bug reporting instructions, please see:
><http://www.gnu.org/software/gdb/bugs/>.
>Find the GDB manual and other documentation resources online at:
><http://www.gnu.org/software/gdb/documentation/>.
>For help, type "help".
>Type "apropos word" to search for commands related to "word".
>[New LWP 4270]
>[New LWP 4261]
>[New LWP 4268]
>Core was generated by `aptitude changelog apt'.
>Program terminated with signal SIGILL, Illegal instruction.
>#0  0xb6f5216f in ?? ()
>[Current thread is 1 (LWP 4270)]
>(gdb) quit
>$ exit
>exit
>
>Script done on þri 29. des 2015, kl. 04.10.11 GMT
>
>
>  The gdb trace reports:
>
>
>Script started on þri 29. des 2015, kl. 04.11.05 GMT
>$ gdb -batch -n -ex 'set height 0' -ex run -ex bt -ex 'thread apply all bt full' --args aptitude changelog apt
>[Thread debugging using libthread_db enabled]
>Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
>[New Thread 0xb435bb40 (LWP 4317)]
>[New Thread 0xb3b5bb40 (LWP 4318)]
>[New Thread 0xb335bb40 (LWP 4319)]
>[New Thread 0xb2b5bb40 (LWP 4320)]
>
>Program received signal SIGILL, Illegal instruction.
>[Switching to Thread 0xb335bb40 (LWP 4319)]
>0xb7bf216f in boost::filesystem::path::m_parent_path_end (this=this at entry=0xb335afc4) at libs/filesystem/src/path.cpp:348
>348	libs/filesystem/src/path.cpp: No such file or directory.
>#0  0xb7bf216f in boost::filesystem::path::m_parent_path_end (this=this at entry=0xb335afc4) at libs/filesystem/src/path.cpp:348
>#1  0xb7bf238a in boost::filesystem::path::parent_path (this=this at entry=0xb335afc4) at libs/filesystem/src/path.cpp:353
>#2  0xb7beb3f8 in boost::filesystem::detail::create_directories (p=..., ec=0x0) at libs/filesystem/src/operations.cpp:940
>#3  0x801b5e51 in boost::filesystem::create_directories (p=...) at /usr/include/boost/filesystem/operations.hpp:523
>#4  get_download_cache () at ../../../../src/generic/apt/apt.cc:571
>#5  0x801da21a in aptitude::(anonymous namespace)::download_thread::cache_lookup_thread::process_job (job=std::shared_ptr (empty) 0xb5f020b0, this=0xb335b308) at ../../../../src/generic/apt/download_queue.cc:567
>#6  aptitude::util::job_queue_thread<aptitude::(anonymous namespace)::download_thread::cache_lookup_thread, std::shared_ptr<aptitude::(anonymous namespace)::download_thread::start_request> >::run (this=this at entry=0xb5f06304) at ../../../../src/generic/util/job_queue_thread.h:206
>#7  0x801dafc4 in aptitude::util::job_queue_thread<aptitude::(anonymous namespace)::download_thread::cache_lookup_thread, std::shared_ptr<aptitude::(anonymous namespace)::download_thread::start_request> >::bootstrap::operator() (this=<synthetic pointer>) at ../../../../src/generic/util/job_queue_thread.h:80
>#8  cwidget::threads::thread::bootstrap<aptitude::util::job_queue_thread<aptitude::(anonymous namespace)::download_thread::cache_lookup_thread, std::shared_ptr<aptitude::(anonymous namespace)::download_thread::start_request> >::bootstrap> (p=0xb5f0bdb8) at /usr/include/cwidget/generic/threads/threads.h:117
>#9  0xb79bff6b in start_thread (arg=0xb335bb40) at pthread_create.c:333
>#10 0xb773697e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
>
>Thread 5 (Thread 0xb2b5bb40 (LWP 4320)):
>#0  __GI___call_tls_dtors () at cxa_thread_atexit_impl.c:86
>No locals.
>#1  0xb79bff79 in start_thread (arg=0xb2b5bb40) at pthread_create.c:343
>        pd = 0xb2b5bb40
>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1214435328, 0, -1296712896, -1296714776, 1844788472, 829241074}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
>        not_first_call = <optimized out>
>        pagesize_m1 = <optimized out>
>        sp = <optimized out>
>        freesize = <optimized out>
>        __PRETTY_FUNCTION__ = "start_thread"
>#2  0xb773697e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
>No locals.
>
>Thread 4 (Thread 0xb335bb40 (LWP 4319)):
>#0  0xb7bf216f in boost::filesystem::path::m_parent_path_end (this=this at entry=0xb335afc4) at libs/filesystem/src/path.cpp:348
>        end_pos = 15
>        filename_was_separator = <optimized out>
>#1  0xb7bf238a in boost::filesystem::path::parent_path (this=this at entry=0xb335afc4) at libs/filesystem/src/path.cpp:353
>        end_pos = <optimized out>
>#2  0xb7beb3f8 in boost::filesystem::detail::create_directories (p=..., ec=0x0) at libs/filesystem/src/operations.cpp:940
>        local_ec = {m_val = 2, m_cat = 0xb7be006c <boost::system::system_category()::system_category_const>}
>        parent = {static preferred_separator = 47 '/', m_pathname = "\203Ä\030[Ã\215´&\000\000\000\000\215B\001\203ì\f\211\021Pèê\232ö"}
>#3  0x801b5e51 in boost::filesystem::create_directories (p=...) at /usr/include/boost/filesystem/operations.hpp:523
>No locals.
>#4  get_download_cache () at ../../../../src/generic/apt/apt.cc:571
>        env_XDG_CACHE_HOME = <optimized out>
>        xdg_cache_home = "/home/bg/.cache"
>        download_cache_dir = "/home/bg/.cache/aptitude"
>        download_cache_file_name = ""
>        logger = std::shared_ptr (count 2, weak 1) 0x803cf434
>#5  0x801da21a in aptitude::(anonymous namespace)::download_thread::cache_lookup_thread::process_job (job=std::shared_ptr (empty) 0xb5f020b0, this=0xb335b308) at ../../../../src/generic/apt/download_queue.cc:567
>        download_cache = std::shared_ptr (empty) 0x0
>#6  aptitude::util::job_queue_thread<aptitude::(anonymous namespace)::download_thread::cache_lookup_thread, std::shared_ptr<aptitude::(anonymous namespace)::download_thread::start_request> >::run (this=this at entry=0xb5f06304) at ../../../../src/generic/util/job_queue_thread.h:206
>        next = std::shared_ptr (count 1, weak 0) 0xb5f020bc
>        l = {parent = @0x803c4cb8, locked = false}
>#7  0x801dafc4 in aptitude::util::job_queue_thread<aptitude::(anonymous namespace)::download_thread::cache_lookup_thread, std::shared_ptr<aptitude::(anonymous namespace)::download_thread::start_request> >::bootstrap::operator() (this=<synthetic pointer>) at ../../../../src/generic/util/job_queue_thread.h:80
>No locals.
>#8  cwidget::threads::thread::bootstrap<aptitude::util::job_queue_thread<aptitude::(anonymous namespace)::download_thread::cache_lookup_thread, std::shared_ptr<aptitude::(anonymous namespace)::download_thread::start_request> >::bootstrap> (p=0xb5f0bdb8) at /usr/include/cwidget/generic/threads/threads.h:117
>No locals.
>#9  0xb79bff6b in start_thread (arg=0xb335bb40) at pthread_create.c:333
>        __res = <optimized out>
>        pd = 0xb335bb40
>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1214435328, 0, -1288324288, -1288326168, 1844788475, 829241074}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
>        not_first_call = <optimized out>
>        pagesize_m1 = <optimized out>
>        sp = <optimized out>
>        freesize = <optimized out>
>        __PRETTY_FUNCTION__ = "start_thread"
>#10 0xb773697e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
>No locals.
>
>Thread 3 (Thread 0xb3b5bb40 (LWP 4318)):
>#0  __GI___call_tls_dtors () at cxa_thread_atexit_impl.c:86
>No locals.
>#1  0xb79bff79 in start_thread (arg=0xb3b5bb40) at pthread_create.c:343
>        pd = 0xb3b5bb40
>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1214435328, 0, -1279935680, -1279937560, 1844788474, 829241074}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
>        not_first_call = <optimized out>
>        pagesize_m1 = <optimized out>
>        sp = <optimized out>
>        freesize = <optimized out>
>        __PRETTY_FUNCTION__ = "start_thread"
>#2  0xb773697e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
>No locals.
>
>Thread 2 (Thread 0xb435bb40 (LWP 4317)):
>quit
>#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i586/../i486/pthread_cond_wait.S:188
>No locals.
>Backtrace stopped: Cannot access memory at address 0xb435b01c
>Couldn't get registers: No such process.
>$ quit
>^Zbash: quit: command not found
>$ exit
>exit
>
>Script done on þri 29. des 2015, kl. 04.26.07 GMT
>
>  While "gdb" is working, "top" shows that it uses first about 80 % CPU, then about 6 %
>and 83 % waiting (wa).  The disk-light is then continously lit.
>
>  After "Thread 2 (Thread 0xb435bb40 (LWP 4317)):" there is no progress.
> Therefor I issued the "quit" command.
>
>-- 
>Bjarni I. Gislason


Thanks for the info.

Looks like a problem with Boost, and I've been checking in its BTS and:

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794622

The AMD K6 is an i585, or at least not a fully compatible i686, if I
recall correctly.


I've pinged the maintainers of the x32 port to see if they go ahead with
the NMU (pushing a release with that patch included).  I am not sure if
we can do much more about it from aptitude's side.


Cheers.
-- 
Manuel A. Fernandez Montecelo <manuel.montezelo at gmail.com>



More information about the Aptitude-devel mailing list