diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-09-07 10:21:01 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-09-07 10:21:01 +0200 |
commit | 12b201da7c1d5e2beceae796151e4ebedc5bae97 (patch) | |
tree | b69e53430efa30b34bd678f4cefb6e53fa373120 /apt-private | |
parent | 99fdd8034b4a5cdb0100a33d0b3d5e26079c1695 (diff) |
edsp: try 2 to read responses even if writing failed
Commit b60c8a89c281f2bb945d426d2215cbf8f5760738 improved the situation,
but due to inconsistency mostly for planners, not for solvers. As the
idea of hiding errors if we show another error is a bit scary (as the
extern error might be a followup of our intern error, rather than the
reason for our intern error as it is at the moment) we don't discard the
errors, but if we got an extern error we show them directly removing
them from the error list at the end of the run – that list will contain
the extern error which hopefully gives us the best of both worlds.
The problem itself is the same as before: The externals exiting before
apt is done talking to them.
Reported-By: Johannes 'josch' Schauer on IRC
Diffstat (limited to 'apt-private')
-rw-r--r-- | apt-private/private-install.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index aa28780da..fab742dc7 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -48,6 +48,10 @@ bool CheckNothingBroken(CacheFile &Cache) /*{{{*/ if (Cache->BrokenCount() == 0) return true; + // FIXME: if an external solver showed an error, we shouldn't show one here + if (_error->PendingError() && _config->Find("APT::Solver") == "dump") + return false; + c1out << _("Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" |