From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106399 invoked by alias); 1 Nov 2017 20:38:56 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 106186 invoked by uid 89); 1 Nov 2017 20:38:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Download, carefully, annoying, clicks X-HELO: limerock02.mail.cornell.edu Received: from limerock02.mail.cornell.edu (HELO limerock02.mail.cornell.edu) (128.84.13.242) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 01 Nov 2017 20:38:55 +0000 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id vA1KcqRd022320 for ; Wed, 1 Nov 2017 16:38:53 -0400 Received: from [10.13.22.3] (65-112-130-194.dia.static.qwest.net [65.112.130.194]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id vA1Kcpvq031208 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Wed, 1 Nov 2017 16:38:52 -0400 To: cygwin-apps From: Ken Brown Subject: [setup topic/libsolv] Crash after incomplete download Message-ID: <4966bc07-8a00-3324-6b6f-4da2213e974c@cornell.edu> Date: Wed, 01 Nov 2017 20:38:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Cornell-Gauge: Gauge=X X-PMX-CORNELL-AUTH-RESULTS: dkim-out=none; X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg00003.txt.bz2 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. Ken