This is the mail archive of the
mailing list for the Cygwin project.
[setup topic/libsolv] Crash after incomplete download
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin-apps <cygwin-apps at cygwin dot com>
- Date: Wed, 1 Nov 2017 16:38:50 -0400
- Subject: [setup topic/libsolv] Crash after incomplete download
- Authentication-results: sourceware.org; auth=none
If there is a download failure and the user clicks Yes in response to
"Download Incomplete. Try again?", then setup will crash. The crash
occurs at PickView.cc:447 because i->source() is NULL.
I haven't yet analyzed this in further detail, but the crux of the issue
seems to be that we call do_ini_thread a second time without having
cleaned out the package database and the libsolv pool.
This is probably a symptom of a more general problem, which is that we
haven't thought carefully (or at least I haven't) about what happens
when we visit certain pages for a second time, after the libsolv pool
has been created.
Before I work further on this, I have a UI question. Is it really
reasonable that we go back to the mirror selection page after "Download
incomplete"? I understand the rationale, which is that the user might
want to try a different mirror after a download failure. But I
personally have always found this annoying. I would rather just retry
the download, which is what the message ("Download Incomplete. Try
again?") suggests is going to happen.