`update`: error: failed to synchronize all databases (unexpected error)

Nico fixed it.

Skip mirrorlist, read wiki link, and just update

4 Likes

jic: [HELP] rate-mirrors Yields 1 mirror that is not working · Issue #56 · westandskif/rate-mirrors · GitHub

So to explain it: we basically had both versions in the repository and both of them had a replaces() set, causing each other to replace each other. We have been shipping the git version for ages and I don’t even remember the reason for it. We do strive to provide properly versioned packages these days. What “fixed” it was removing the now obsolete package from the repository.

9 Likes

:warning:This issue is now fixed. you can run either garuda-update or garuda-update -a (to update AUR as well) to update normally! :warning:

:warning: The information below is currently here for historical reasons and is not needed at this time :warning:

I thought I would try to recap things here.
As SGS mentioned you need to have a working mirror list and then use garuda-update --skip-mirrorlist in order to update. Here are the steps to do so:

  1. Generate new mirrors that work best for your location by using: Arch Linux - Pacman Mirrorlist Generator
  2. sudo micro /etc/pacman.d/mirrorlist
    (in this example we are using mirco as the text editor; use what you normally like of course)
  3. Delete everything currently inside that file.
  4. Paste new mirrors obtained from the Pacman Mirrorlist Generator in step 1.
  5. Remove the # in front of the lines of the mirrors you want to use. You’ll want to use a few mirrors of course.
  6. Save using ctrl+S then quit using ctrl+Q
  7. garuda-update --skip-mirrorlist
    (or garuda-update -a --skip-mirrorlist to update AUR packages as well)

(note to Moderators:
These are the steps I tried myself. If anything needs to be edited, feel free to do so)

19 Likes

This issue is now fixed. If you’re monitoring this thread for a proper solution, this is now done. Simply run garuda-update to update your system as usual.

Now, if you are on the more technically inclined side... (or just curious)

Here is the root cause analysis:
About the time the issue occurred, something interesting happened on Arch’s mirror status service. For some reason, all but 2 mirrors are listed as having a completion percentage of less than 100%. One of those mirrors is an rsync mirror, which we don’t make use of, and the other is, you guessed it, mirror.cyberbits.asia.

By default, rate-mirrors and reflector both only test and add mirrors to the mirror list that have 100% completion, so both tools would do the reasonable thing and follow the statistics provided by Arch’s mirror status service.

It probably doesn’t surprise you that that server is not so happy about being the only mirror being accessed by quite a number of clients now, so I assume it buckled under the load and isn’t responding to requests anymore, causing this entire issue.

As usual, it takes multiple things to go wrong in the Swiss cheese model, from the default configuration of rate-mirrors, to the interesting situation on the mirror status service and the mirror going offline. Take any of these factors away, and this issue would’ve never occurred in the first place.

Luckily, garuda-update is a very solidly written piece of software with many backups and failsafes, so even with a corrupted mirrorlist, we were able to effortlessly roll out an update to garuda-update via our usual channels that is automatically applied by one of the failsafes that kicked in, which allowed us to decrease the required completion percentage to 98%, which allows rate-mirrors and reflector to once again provide a valid mirrorlist that can then be used to update the system as normal.

13 Likes

good job garuda team :clap:

Had this issue today, but running sudo update remote fix fixed it for me temporarily. Located in the US. Been having the issue off and on for a couple weeks now.