[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#734142: marked as done (Aptitude crashes in endless loop (?))



Your message dated Tue, 10 Jun 2014 18:36:27 +0200
with message-id <20140610163627.GB4784@crossbow>
and subject line Re: Bug#734142: Pre-Depends loop
has caused the Debian Bug report #734142,
regarding Aptitude crashes in endless loop (?)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
734142: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734142
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libapt-pkg4.12
Version: 0.9.14.1

Trying to install systemd-sysv 204-6 and upgrade the rest of systemd
to 204-6.  After pressing 'g', aptitude crashes reproducibly with a
VERY long backtrace.  This is the backtrace (unfortunately, there's no
dbg package):

Program received signal SIGSEGV, Segmentation fault.
0x00007f9f5a3bbd6d in _int_malloc (av=0x7f9f5a6e6640 <main_arena>, bytes=1049) at malloc.c:3379
3379    malloc.c: No such file or directory.
(gdb) bt
#0  0x00007f9f5a3bbd6d in _int_malloc (av=0x7f9f5a6e6640 <main_arena>, bytes=1049) at malloc.c:3379
#1  0x00007f9f5a3be083 in __GI___libc_malloc (bytes=1049) at malloc.c:2859
#2  0x00007f9f5ac5ee6d in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007f9f5acb9509 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007f9f5acba0cb in std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007f9f5acba164 in std::string::reserve(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007f9f5acba3af in std::string::append(char const*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007f9f5c809e16 in OutputInDepth(unsigned long, char const*) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#8  0x00007f9f5c841fa6 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#9  0x00007f9f5c842be2 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#10 0x00007f9f5c842293 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#11 0x00007f9f5c842be2 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12

[...]

#15875 0x00007f9f5c842be2 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15876 0x00007f9f5c842293 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15877 0x00007f9f5c847e40 in pkgPackageManager::OrderInstall() () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15878 0x00007f9f5cf3c76a in ?? ()
#15879 0x00007f9f5cf3c80f in ?? ()
#15880 0x00007f9f5ce8cc89 in ?? ()
#15881 0x00007f9f5cdf0dcc in ?? ()
#15882 0x00007f9f5cdf55b3 in ?? ()
#15883 0x00007f9f5ce886a5 in ?? ()
#15884 0x00007f9f5bebd305 in cwidget::toplevel::mainloop(int) () from /usr/lib/libcwidget.so.3
#15885 0x00007f9f5ce84f58 in ?? ()
#15886 0x00007f9f5cda46e6 in ?? ()
#15887 0x00007f9f5a361995 in __libc_start_main (main=0x7f9f5cda3030, argc=1, ubp_av=0x7fffa62cc7b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7fffa62cc7a8) at libc-start.c:276
#15888 0x00007f9f5cdaf189 in ?? ()


The same problem can be reproduced with "aptitude install -t sid
systemd-sysv", slightly different inner backtrace:

#0  0x00007ffff7ad1d85 in Configuration::Lookup(Configuration::Item*, char const*, unsigned long const&, bool const&) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#1  0x00007ffff7ad1e14 in Configuration::Lookup(char const*, bool const&) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#2  0x00007ffff7ad251d in Configuration::FindI(char const*, int const&) const () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#3  0x00007ffff7b04a00 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#4  0x00007ffff7b05be2 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#5  0x00007ffff7b05293 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#6  0x00007ffff7b05be2 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#7  0x00007ffff7b05293 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
[...]
#15873 0x00007ffff7b05293 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15874 0x00007ffff7b05be2 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15875 0x00007ffff7b05293 in pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15876 0x00007ffff7b0ae40 in pkgPackageManager::OrderInstall() () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12
#15877 0x000055555575476a in ?? ()
#15878 0x000055555575480f in ?? ()
#15879 0x00005555556e4ed7 in ?? ()
#15880 0x00005555556baa02 in ?? ()
#15881 0x00005555555bd369 in ?? ()
#15882 0x00007ffff5624995 in __libc_start_main (main=0x5555555bb030, argc=5, ubp_av=0x7fffffffe678, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe668) at libc-start.c:276

--- End Message ---
--- Begin Message ---
Version: 1.0.4

Hi,

On Sat, Jan 04, 2014 at 10:57:00AM +0100, Max Kellermann wrote:
> It appears this bug occurs when there is a "PreDepends" that conflicts
> with another "Breaks" rule.

This assessment is actually mostly correct, but it still took me a while
and a different viewangle to figure out what is wrong. Only after
fixing, testing and rereading various older bugreports I figured out
that this was actually reported for a long time, but slipped below the
radar…


The problem here is many-fold, but from the apt side it should all be
fixed now in a big makeover of the involved pieces, which is hidden in
two simple lines of the changelog:

apt (1.0.4) unstable; urgency=medium
[…]
  * consistently fail if Smart* packagemanager actions fail
  * fix tight loop detection and temporary removes
[…]
 -- Michael Vogt <mvo@debian.org>  Tue, 10 Jun 2014 14:55:05 +0200


Note that while the segfault is gone, you will get an error message now,
so the upgrade isn't really in any way smoother just yet, as the trigger
for this bug is actually a serious problem in the dependencies between
sysvinit and systemd (#748355) which they have to resolve.


I found records of similar things happening in 2000 and 2006, so you get
a feeling of how often this particular codepath is being triggered.
I wonder if I will be around in ~2020 to collect the fruits of this
labour…

Until then: Thanks for the bugreport & sorry for the huge delay!


Best regards

David Kalnischkies

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: