<div dir="ltr"><div><div><div>Hi All<br><br></div>I've tried reproducing this in 0.8.2 and can't, so it does appear to have been fixed. Thanks for fixing this.<br><br></div>Regards<br></div>James<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 11 June 2016 at 09:26, Manuel A. Fernandez Montecelo <span dir="ltr"><<a href="mailto:manuel.montezelo@gmail.com" target="_blank">manuel.montezelo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Control: tags -1 + pending<br>
<br>
<br>
Hi,<br>
<br>
2016-05-20 08:39 David Kalnischkies:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
(disclaimer: apt, not aptitude, maintainer talking)<span class=""><br>
<br>
On Fri, May 20, 2016 at 09:54:23AM +1000, James Tocknell wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
0x00007ffff7b3feed in debVersioningSystem::CheckDep(char const*, int, char<br>
const*) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0<br>
#0  0x00007ffff7b3feed in debVersioningSystem::CheckDep(char const*, int,<br>
char const*) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0<br>
#1  0x00005555557767c1 in infer_reason (pkg=..., reasons=std::set with 1<br>
elements = {...}) at ../../../../src/generic/apt/infer_reason.cc:178<br>
</blockquote>
<br></span>
[It is a bit confusing that the code of frame #1 is actually calling<br>
IsSatisfied(), but it is just a wrapper around CheckDep() so lets just<br>
ignore that for the moment]<br>
<br>
10f0cf4a04b2526e9dea65facde865d993396417 adds this code, which passes<br>
the candidate version to IsSatisfied – but not all packages have<br>
a candidate! So that code should be adapted to test first if the package<br>
has a candidate and only if so check if the candidate satisfies the<br>
dependency.<br>
<br>
<br>
Now, we could ask why IsSatisfied requires a valid version and the<br>
answer is: nobody (aka me) thought anybody would pass it an invalid<br>
version as the soul reason for the one-line IsSatisfied is to hide the<br>
call to CheckDep behind a slightly nicer interface (1 vs 3 parameters)<br>
and all existing calls in apt passed only valid versions in…<br>
<br>
I am not sure it is a good idea to add checks to that method as its in<br>
various hot paths for apt & it has the potential of hiding bugs (at the<br>
expense of opening some like here). Either way, that needs more thought<br>
than I can shell out at the moment & adapting the call site should be<br>
easy.<br>
</blockquote>
<br>
Thanks for the dignosis.<br>
<br>
Since I couldn't find an easy way to reproduce it (the texlive packages<br>
are huge for my wrongly-called broadband), I am basing this fix on the<br>
diagnosis above.<br>
<br>
<br>
2016-05-24 05:03 James Tocknell:<span class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've got a more useful backtrace (had to build apt to get its debug<br>
symbols). The issue seems to be line 178 in infer_reason.cc, which<br>
got introduced in 0.8. Somehow (I'm not sure, everything seems to have been<br>
inlined...), it's calling debVersioningSystem::CheckDep with an invalid<br>
address.<br>
</blockquote>
<br></span>
It probably happens for the reasons that David explained.<br>
<br>
I think that it has to do with the reverse dependencies of virtual<br>
packages.  I tried to reproduce it with csh|tcsh (virtual package<br>
c-shell) and some -perl reverse dependency, but I tried to remove them<br>
and mark as auto in different combinations for many minutes, and I<br>
couldn't trigger it.<br>
<br>
If you still experience this problem, it would be very nice if you<br>
confirm that it's indeed fixed when we release the next version.<br>
<br>
<br>
Cheers.<span class="HOEnZb"><font color="#888888"><br>
-- <br>
Manuel A. Fernandez Montecelo <<a href="mailto:manuel.montezelo@gmail.com" target="_blank">manuel.montezelo@gmail.com</a>><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Don't send me files in proprietary formats (.doc(x), .xls, .ppt etc.). It isn't good enough for <a href="http://opendotdotdot.blogspot.com/2010/04/rms-and-tim-berners-lee-separated-at.html" target="_blank">Tim Berners-Lee</a>, and it isn't good enough for me either. For more information visit <a href="http://www.gnu.org/philosophy/no-word-attachments.html" target="_blank">http://www.gnu.org/philosophy/no-word-attachments.html</a>.<br><br>Truly great madness cannot be achieved without significant intelligence.<br> - Henrik Tikkanen<br><br>If you're not messing with your sanity, you're not having fun.<br> - James Tocknell<br><br>In theory, there is no difference between theory and practice; In practice, there is.</div>
</div>