[pacman-dev] [PATCH v2] Swap alpm_db_update() implementation to multiplexed version

Eli Schwartz eschwartz at archlinux.org
Mon May 11 15:10:47 UTC 2020


On 5/11/20 10:27 AM, guillaume at manjaro.org wrote:
> Hi Allan, Hi Anatol,
> 
> I was looking to this new multiplexed implementation and I found some
> problems:
> 1) This implementation can lead to download databases from different
> servers, I think it can't be a problem if they are not synced

This should already be the case in the single-download version too, no?

> 2) Differents download payloads are created for databases and its
> signature files, this can this time lead to download the database and
> its signature from differents server, I'm sure it's not wanted.
> 3) Because signature files have their own download payloads, if the
> signature is missing on a the first server (e.g. database signature is
> optional), all next servers will be tried and all will give the same error.

re 2) I cannot remember offhand if this was already the case, but anyway
it's not impossible for one to download the database successfully from
one mirror, then get a sudden network issue on the signature. Falling
back to a second server for optional signatures will just lead to
download errors (which are ignored for sigs), and for required
signatures it will fail the signature check the same way failure to
download the signature at all would fail, because one way or another we
*need* an updated signature.

re both 2) and 3) I guess this could be optimized in the database
download handling to abort on the first 404 but fall through to
additional servers for connection failures. I'm not sure whether this
would be a good thing... how would we detect mirrors that can be
connected to, but no longer host any pacman repos? Checking 5 mirrors
for 404 errors isn't much of an issue.

I guess it could also solve this error I got:

error: failed retrieving file 'core.db.sig' from mirror.epiphyte.network
: Could not resolve host: mirror.epiphyte.network
error: failed retrieving file 'testing.db.sig' from
mirror.epiphyte.network : Could not resolve host: mirror.epiphyte.network
error: failed retrieving file 'extra.db.sig' from
mirror.epiphyte.network : Could not resolve host: mirror.epiphyte.network
error: failed retrieving file 'community-testing.db.sig' from
mirror.epiphyte.network : Could not resolve host: mirror.epiphyte.network
error: failed retrieving file 'community.db.sig' from
mirror.epiphyte.network : Could not resolve host: mirror.epiphyte.network
error: failed retrieving file 'multilib.db.sig' from
mirror.epiphyte.network : Could not resolve host: mirror.epiphyte.network
error: failed retrieving file 'multilib-testing.db.sig' from
mirror.epiphyte.network : Could not resolve host: mirror.epiphyte.network

But I'd already solved this one by removing the dead mirror from the
bottom of my mirrorlist (it used to be a pretty good fallback one). When
all mirrors fail in the more normal manner at retrieving a signature,
there's no UI results.

> I really wanted to suggest a patch but I didn't find a easy way
> (understand a small patch) to fix it and I would like your opinion on
> point 1) first.
> 
> Regards,
> Guillaume.


-- 
Eli Schwartz
Bug Wrangler and Trusted User

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1601 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20200511/fb6360d6/attachment.sig>


More information about the pacman-dev mailing list