Problem with packagesource::sites in setup

Ken Brown kbrown@cornell.edu
Sat Mar 17 14:59:00 GMT 2018


On 3/16/2018 7:44 AM, Ken Brown wrote:
> On 3/15/2018 10:42 PM, Ken Brown wrote:
>> On 3/15/2018 6:07 PM, Jon Turney wrote:
>>> On 15/03/2018 21:23, Ken Brown wrote:
>>>> I think we're currently mishandling packagesource::sites when 
>>>> several libsolv repos contain the same version of a package.  If I'm 
>>>> not mistaken, we create a new packageversion pv for each repo, and 
>>>> pv.source()->sites contains a single site, corresponding to that repo.
>>>>
>>>> So we never take advantage of the fact that we have more than one 
>>>> mirror (or mirror directory) from which we can potentially obtain an 
>>>> archive for the package.
>>>
>>> Hmm... I think this is going to interact with the package 
>>> repositories release: label.  If they are both "cygwin", then one 
>>> will overwrite the other.
>>
>> I hadn't thought of that.  But will one really overwrite the other or 
>> will we just get several copies of the same package and version in the 
>> "cygwin" repo, each with its own site?
>>
>>>   If they are different, then we'll have 2 separate libsolv repos.
>>
>>> In the first case, I'm not sure that having the same package 
>>> available from more than one package repository mirror was ever was 
>>> doing anything terribly useful (i.e. it doesn't make the download any 
>>> faster, or more reliable)
>>
>> No, but it can help if one mirror is having transient network 
>> problems. For example, we might get a corrupt archive from one mirror, 
>> and then the loop in download.cc:download_one() will try the next 
>> one.  I have no idea how many users use more than one mirror with the 
>> expectation that this will happen.  Probably not many.
>>
>>> But, yeah, what we are doing currently is probably wrong.
>>
>> And I'm less convinced now that it's worth worrying about.
> 
> I just realized that this affects local installs also.  Here it's not 
> unusual for a user to have several mirror directories from different 
> setup runs.  But if two different setup.ini files list a given 
> packageversion, setup will offer it for install only if the archive is 
> found in the directory corresponding to the last setup.ini read.
> 
> So I do think this should be fixed.

A patchset is on its way.

Ken



More information about the Cygwin-apps mailing list