[Aptitude-devel] Bug#824441: Bug#824441: aptitude segfaults when marking texlive-generic-extra as auto-installed

James Tocknell aragilar at gmail.com
Tue Jul 26 09:17:30 UTC 2016

Hi All

I've tried reproducing this in 0.8.2 and can't, so it does appear to have
been fixed. Thanks for fixing this.


On 11 June 2016 at 09:26, Manuel A. Fernandez Montecelo <
manuel.montezelo at gmail.com> wrote:

> Control: tags -1 + pending
> Hi,
> 2016-05-20 08:39 David Kalnischkies:
>> Hi,
>> (disclaimer: apt, not aptitude, maintainer talking)
>> On Fri, May 20, 2016 at 09:54:23AM +1000, James Tocknell wrote:
>>> 0x00007ffff7b3feed in debVersioningSystem::CheckDep(char const*, int,
>>> char
>>> const*) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
>>> #0  0x00007ffff7b3feed in debVersioningSystem::CheckDep(char const*, int,
>>> char const*) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
>>> #1  0x00005555557767c1 in infer_reason (pkg=..., reasons=std::set with 1
>>> elements = {...}) at ../../../../src/generic/apt/infer_reason.cc:178
>> [It is a bit confusing that the code of frame #1 is actually calling
>> IsSatisfied(), but it is just a wrapper around CheckDep() so lets just
>> ignore that for the moment]
>> 10f0cf4a04b2526e9dea65facde865d993396417 adds this code, which passes
>> the candidate version to IsSatisfied – but not all packages have
>> a candidate! So that code should be adapted to test first if the package
>> has a candidate and only if so check if the candidate satisfies the
>> dependency.
>> Now, we could ask why IsSatisfied requires a valid version and the
>> answer is: nobody (aka me) thought anybody would pass it an invalid
>> version as the soul reason for the one-line IsSatisfied is to hide the
>> call to CheckDep behind a slightly nicer interface (1 vs 3 parameters)
>> and all existing calls in apt passed only valid versions in…
>> I am not sure it is a good idea to add checks to that method as its in
>> various hot paths for apt & it has the potential of hiding bugs (at the
>> expense of opening some like here). Either way, that needs more thought
>> than I can shell out at the moment & adapting the call site should be
>> easy.
> Thanks for the dignosis.
> Since I couldn't find an easy way to reproduce it (the texlive packages
> are huge for my wrongly-called broadband), I am basing this fix on the
> diagnosis above.
> 2016-05-24 05:03 James Tocknell:
>> I've got a more useful backtrace (had to build apt to get its debug
>> symbols). The issue seems to be line 178 in infer_reason.cc, which
>> got introduced in 0.8. Somehow (I'm not sure, everything seems to have
>> been
>> inlined...), it's calling debVersioningSystem::CheckDep with an invalid
>> address.
> It probably happens for the reasons that David explained.
> I think that it has to do with the reverse dependencies of virtual
> packages.  I tried to reproduce it with csh|tcsh (virtual package
> c-shell) and some -perl reverse dependency, but I tried to remove them
> and mark as auto in different combinations for many minutes, and I
> couldn't trigger it.
> If you still experience this problem, it would be very nice if you
> confirm that it's indeed fixed when we release the next version.
> Cheers.
> --
> Manuel A. Fernandez Montecelo <manuel.montezelo at gmail.com>

Don't send me files in proprietary formats (.doc(x), .xls, .ppt etc.). It
isn't good enough for Tim Berners-Lee
and it isn't good enough for me either. For more information visit

Truly great madness cannot be achieved without significant intelligence.
 - Henrik Tikkanen

If you're not messing with your sanity, you're not having fun.
 - James Tocknell

In theory, there is no difference between theory and practice; In practice,
there is.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/aptitude-devel/attachments/20160726/50efccb1/attachment.html>

More information about the Aptitude-devel mailing list