From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31586 invoked by alias); 2 Nov 2017 17:22:39 -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 31558 invoked by uid 89); 2 Nov 2017 17:22:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=unattended, 2150, prep, visit X-HELO: out4-smtp.messagingengine.com Received: from out4-smtp.messagingengine.com (HELO out4-smtp.messagingengine.com) (66.111.4.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 02 Nov 2017 17:22:35 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 5EB0120BF3 for ; Thu, 2 Nov 2017 13:22:34 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute6.internal (MEProxy); Thu, 02 Nov 2017 13:22:34 -0400 X-ME-Sender: Received: from [192.168.1.102] (host86-162-230-154.range86-162.btcentralplus.com [86.162.230.154]) by mail.messagingengine.com (Postfix) with ESMTPA id 0F787247AE for ; Thu, 2 Nov 2017 13:22:33 -0400 (EDT) Subject: Re: [setup topic/libsolv] Crash after incomplete download To: cygwin-apps@cygwin.com References: <4966bc07-8a00-3324-6b6f-4da2213e974c@cornell.edu> From: Jon Turney Message-ID: <2ad6ea16-ef19-ae4e-757f-9e9b882aba75@dronecode.org.uk> Date: Thu, 02 Nov 2017 17:22: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 In-Reply-To: <4966bc07-8a00-3324-6b6f-4da2213e974c@cornell.edu> Content-Type: multipart/mixed; boundary="------------70B5DF1F943D15E09D2E7E31" X-SW-Source: 2017-11/txt/msg00004.txt.bz2 This is a multi-part message in MIME format. --------------70B5DF1F943D15E09D2E7E31 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 2036 On 01/11/2017 20:38, Ken Brown wrote: > 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. Thanks for finding all these problems! > 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. The fact that this isn't considered at all at the moment makes me wonder if it's working correctly in this situation currently. But, yeah, I agree that packagedb state should be cleared in this case. I tried with the attached, but it still segfaults at the same place. This seems to be because all the packagedb prep (including fixup_source_package_ids) is in OnInit() (which is only called once per page, but lazily), rather than OnActivate(), so probably some more restructuring is needed there :( > 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. This makes perfect sense to me. The path that an unattended install takes out of there is particularly convoluted, as well. I suspect there's other terribleness in this area, like if you choose "No", the incomplete package download is left in the local package cache to fail it's checksum check on the next run... --------------70B5DF1F943D15E09D2E7E31 Content-Type: text/plain; charset=UTF-8; name="0001-Empty-packagedb-and-underlying-solver-pool-if-we-go-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Empty-packagedb-and-underlying-solver-pool-if-we-go-.pa"; filename*1="tch" Content-length: 3445 RnJvbSBiYWVjMDE4ZTkzYzBlN2NlYTc5OTNjMjJhNWUzMmYyMDY1YTFlN2Fl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gVHVybmV5IDxq b24udHVybmV5QGRyb25lY29kZS5vcmcudWs+CkRhdGU6IFRodSwgMiBOb3Yg MjAxNyAxNDoxNTowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggc2V0dXBdIEVt cHR5IHBhY2thZ2VkYiBhbmQgdW5kZXJseWluZyBzb2x2ZXIgcG9vbCBpZiB3 ZSBnbwogYmFjayB0byBXTV9BUFBfU1RBUlRfU0VUVVBfSU5JX0RPV05MT0FE CgpYWFg6IHRoaXMgaXMgcHJvYmFibHkgc3RpbGwgd3JvbmcgYXMgd2UgY2Fu IGJ5cGFzcyB0aGlzIHN0YXRlPwotLS0KIGluaS5jYyAgICAgICAgfCAgMyAr KysKIGxpYnNvbHYuY2MgICAgfCAxNSArKysrKysrKysrKysrKysKIGxpYnNv bHYuaCAgICAgfCAgMiArKwogcGFja2FnZV9kYi5jYyB8IDEzICsrKysrKysr KysrKysKIHBhY2thZ2VfZGIuaCAgfCAgMSArCiA1IGZpbGVzIGNoYW5nZWQs IDM0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmkuY2MgYi9pbmku Y2MKaW5kZXggMGY4YjkyNy4uZTJhYjA4ZiAxMDA2NDQKLS0tIGEvaW5pLmNj CisrKyBiL2luaS5jYwpAQCAtMzQ2LDYgKzM0Niw5IEBAIGRvX3JlbW90ZV9p bmkgKEhXTkQgb3duZXIpCiBzdGF0aWMgYm9vbAogZG9faW5pX3RocmVhZCAo SElOU1RBTkNFIGgsIEhXTkQgb3duZXIpCiB7CisgIHBhY2thZ2VkYiBkYjsK KyAgZGIuaW5pdCgpOworCiAgIHNpemVfdCBpbmlfY291bnQgPSAwOwogICBp ZiAoc291cmNlID09IElEQ19TT1VSQ0VfTE9DQUxESVIpCiAgICAgaW5pX2Nv dW50ID0gZG9fbG9jYWxfaW5pIChvd25lcik7CmRpZmYgLS1naXQgYS9saWJz b2x2LmNjIGIvbGlic29sdi5jYwppbmRleCA5ZGQxZWViLi43ZWVjYzI5IDEw MDY0NAotLS0gYS9saWJzb2x2LmNjCisrKyBiL2xpYnNvbHYuY2MKQEAgLTMx Niw2ICszMTYsMTIgQEAgdm9pZCBkZWJ1Z19jYWxsYmFjayhQb29sICpwb29s LCB2b2lkICpkYXRhLCBpbnQgdHlwZSwgY29uc3QgY2hhciAqc3RyKQogfQog CiBTb2x2ZXJQb29sOjpTb2x2ZXJQb29sKCkKK3sKKyAgaW5pdCgpOworfQor Cit2b2lkCitTb2x2ZXJQb29sOjppbml0KCkKIHsKICAgLyogY3JlYXRlIGEg cG9vbCAqLwogICBwb29sID0gcG9vbF9jcmVhdGUoKTsKQEAgLTMzMyw2ICsz MzksMTUgQEAgU29sdmVyUG9vbDo6U29sdmVyUG9vbCgpCiAgIHBvb2xfc2V0 X2luc3RhbGxlZChwb29sLCBpbnN0YWxsZWQtPnJlcG8pOwogfQogCit2b2lk CitTb2x2ZXJQb29sOjpjbGVhcigpCit7CisgIHJlcG9zLmNsZWFyKCk7Cisg IHBvb2xfZnJlZShwb29sKTsKKworICBpbml0KCk7Cit9CisKIFNvbHZSZXBv ICoKIFNvbHZlclBvb2w6OmdldFJlcG8oY29uc3Qgc3RkOjpzdHJpbmcgJm5h bWUsIGJvb2wgdGVzdCkKIHsKZGlmZiAtLWdpdCBhL2xpYnNvbHYuaCBiL2xp YnNvbHYuaAppbmRleCA2NWUxNjEwLi4zNjZjZDU5IDEwMDY0NAotLS0gYS9s aWJzb2x2LmgKKysrIGIvbGlic29sdi5oCkBAIC0xMzAsNiArMTMwLDcgQEAg Y2xhc3MgU29sdmVyUG9vbAogewogcHVibGljOgogICBTb2x2ZXJQb29sKCk7 CisgIHZvaWQgY2xlYXIoKTsKICAgU29sdlJlcG8gKmdldFJlcG8oY29uc3Qg c3RkOjpzdHJpbmcgJm5hbWUsIGJvb2wgdGVzdCA9IGZhbHNlKTsKIAogICAv LyBVdGlsaXR5IGNsYXNzIGZvciBwYXNzaW5nIGFyZ3VtZW50cyB0byBhZGRQ YWNrYWdlKCkKQEAgLTE1OCw2ICsxNTksNyBAQCBwdWJsaWM6CiAKIAogcHJp dmF0ZToKKyAgdm9pZCBpbml0KCk7CiAgIElkIG1ha2VkZXBzKFJlcG8gKnJl cG8sIFBhY2thZ2VEZXBlbmRzICpyZXF1aXJlcyk7CiAgIFBvb2wgKnBvb2w7 CiAKZGlmZiAtLWdpdCBhL3BhY2thZ2VfZGIuY2MgYi9wYWNrYWdlX2RiLmNj CmluZGV4IDY2ZTdmMGEuLjViZjkwMDkgMTAwNjQ0Ci0tLSBhL3BhY2thZ2Vf ZGIuY2MKKysrIGIvcGFja2FnZV9kYi5jYwpAQCAtNDcsNiArNDcsMTkgQEAg cGFja2FnZWRiOjpwYWNrYWdlZGIgKCkKIHsKIH0KIAordm9pZAorcGFja2Fn ZWRiOjppbml0ICgpCit7CisgIGluc3RhbGxlZGRicmVhZCA9IDA7CisgIGlu c3RhbGxlZGRidmVyID0gMDsKKyAgcGFja2FnZXMuY2xlYXIoKTsKKyAgc291 cmNlUGFja2FnZXMuY2xlYXIoKTsKKyAgY2F0ZWdvcmllcy5jbGVhcigpOwor ICBzb2x2ZXIuY2xlYXIoKTsKKyAgYmFzZXBrZyA9IHBhY2thZ2V2ZXJzaW9u KCk7CisgIGRlcGVuZGVuY3lPcmRlcmVkUGFja2FnZXMuY2xlYXIoKTsKK30K Kwogdm9pZAogcGFja2FnZWRiOjpyZWFkICgpCiB7CmRpZmYgLS1naXQgYS9w YWNrYWdlX2RiLmggYi9wYWNrYWdlX2RiLmgKaW5kZXggZDcxMjdhNi4uYTI2 YzM4NyAxMDA2NDQKLS0tIGEvcGFja2FnZV9kYi5oCisrKyBiL3BhY2thZ2Vf ZGIuaApAQCAtNjQsNiArNjQsNyBAQCBjbGFzcyBwYWNrYWdlZGIKIHsKIHB1 YmxpYzoKICAgcGFja2FnZWRiICgpOworICB2b2lkIGluaXQoKTsKICAgdm9p ZCByZWFkKCk7CiAgIHZvaWQgbWFrZUJhc2UoKTsKICAgLyogMCBvbiBzdWNj ZXNzICovCi0tIAoyLjE1LjAKCg== --------------70B5DF1F943D15E09D2E7E31--