[pacman-dev] [PATCH] libalpm: fix payloads not being reset between servers

Morgan Adamiec morganamilo at archlinux.org
Sun Jan 17 01:39:18 UTC 2021



On 17/01/2021 01:36, Andrew Gregory wrote:
> On 01/17/21 at 01:18am, morganamilo wrote:
>> This was originally fixed in e83e868a77865d42a33076605f9a90a165f7c93a
>> but removed when implementing parallel downloads.
>>
>> ---
>>
>> Some what untested. Just need to wait for my internet to act up again.
>>
>> diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
>> index df5e8be7..3a65da7f 100644
>> --- a/lib/libalpm/dload.c
>> +++ b/lib/libalpm/dload.c
>> @@ -367,6 +367,12 @@ static int curl_retry_next_server(CURLM *curlm, CURL *curl, struct dload_payload
>>  		fseek(payload->localf, 0, SEEK_SET);
>>  	}
>>  
>> +
>> +	/* reset progress for next server */
>> +	payload->initial_size += payload->prevprogress;
>> +	payload->prevprogress = 0;
>> +	payload->unlink_on_fail = 0;
>> +
>>  	/* Set curl with the new URL */
>>  	curl_easy_setopt(curl, CURLOPT_URL, payload->fileurl);
> 
> $ meson compile; sudo rm /tmp/pacman-5.2.2-1-x86_64.pkg.tar.zst; sudo ./pacman --cachedir /tmp -Sw pacman --noconfirm
> Found runner: ['/usr/bin/ninja']
> ninja: Entering directory `.'
> ninja: no work to do.
> rm: cannot remove '/tmp/pacman-5.2.2-1-x86_64.pkg.tar.zst': No such file or directory
> resolving dependencies...
> 
> Package (1)  Old Version  New Version  Net Change  Download Size
> 
> core/pacman  5.2.2-1      5.2.2-1        0.00 MiB       0.82 MiB
> 
> Total Download Size:  0.82 MiB
> 
> :: Proceed with download? [Y/n] 
> :: Retrieving packages...
>  pacman-5.2.2-1-x86_64.pkg.tar.zst failed to download
> error: failed retrieving file 'pacman-5.2.2-1-x86_64.pkg.tar.zst' from archmirror1.octyl.net : expected download size exceeded
> warning: failed to retrieve some files
> error: failed to commit transaction (download library error)
> Errors occurred, no packages were upgraded.
> 

Well that's fun. Guess it's not that simple then.


More information about the pacman-dev mailing list