Something wrong with pacman-mirrors?

Before the refactor we used python urllib directly - now we use python requests library instead - primarily because it is simpler to use - better error handling by the library.

With the next version - I have refactored the checks and split FTP and HTTP - but I can’t say - my tests shows no significant changes with the rankings.

But as with all activity there is a lot of factors - the computer running pacman-mirrors - the network - routing etc.

If you are on stable branch - you could try installing the new version directly - let me know your findings … - other branches can just run a sync

sudo pacman -U https://manjaro.moson.eu/pool/overlay/pacman-mirrors-4.21.0-1-any.pkg.tar.zst

Sample output from a run 2021-04-05T17:26:00Z located in Aarhus, Denmark

➜  ~ pacman-mirrors
Pacman-mirrors version 4.21.0
Local mirror status for unstable branch
Mirror #1   OK  00:08   Denmark  https://www.uex.dk/public/manjaro/
➜  ~ sudo pacman-mirrors -c all -i -fc
::INFO Downloading mirrors from Manjaro
::INFO => Mirror pool: https://repo.manjaro.org/mirrors.json
::INFO => Mirror status: http://repo.manjaro.org/status.json
::INFO Using default mirror file
::INFO Querying mirrors - This may take some time
  1.197 Austria        : http://mirror.easyname.at/manjaro/
  0.443 Austria        : ftp://mirror.easyname.at/manjaro/
  1.126 Belgium        : https://mirror.futureweb.be/manjaro/
  1.104 Belgium        : http://mirror.futureweb.be/manjaro/
  3.661 Brazil         : https://www.caco.ic.unicamp.br/manjaro/
  1.393 Bulgaria       : https://manjaro.ipacct.com/manjaro/
  ..... Bulgaria       : http://manjaro.telecoms.bg/
  2.168 Canada         : https://osmirror.org/manjaro/
  ..... Chile          : http://manjaro.dcc.uchile.cl/
  3.243 Chile          : https://mirror.ufro.cl/manjaro/
  3.844 Chile          : https://mirror1.cl.netactuate.com/manjaro/
  ..... Chile          : http://mirror1.cl.netactuate.com/manjaro/
  ..... Chile          : ftp://mirror1.cl.netactuate.com/manjaro/
  1.018 Denmark        : https://www.uex.dk/public/manjaro/
  1.148 Germany        : https://mirror.alpix.eu/manjaro/
  1.151 Germany        : https://manjaro.re/
  1.104 Germany        : http://manjaro.re/
  1.176 Germany        : https://ftp.gwdg.de/pub/linux/manjaro/
  1.117 Germany        : http://ftp.gwdg.de/pub/linux/manjaro/
  1.189 Germany        : ftp://ftp.gwdg.de/pub/linux/manjaro/
  1.180 Germany        : https://manjaro.moson.eu/
  1.116 Germany        : http://manjaro.moson.eu/
  1.180 Germany        : https://manjaro.moson.org/
  1.114 Germany        : http://manjaro.moson.org/
  1.435 Hungary        : https://quantum-mirror.hu/mirrors/pub/manjaro/
  1.241 Hungary        : http://quantum-mirror.hu/mirrors/pub/manjaro/
  ..... Japan          : http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/
  1.155 Netherlands    : https://mirror.easylee.nl/manjaro/
  1.085 Netherlands    : http://mirror.easylee.nl/manjaro/
  1.146 Netherlands    : https://manjaro.mirrors.lavatech.top/
  1.090 Netherlands    : http://manjaro.mirrors.lavatech.top/
  1.282 Netherlands    : https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/
  0.333 Netherlands    : ftp://ftp.nluug.nl/pub/os/Linux/distr/manjaro/
  1.146 Netherlands    : https://mirror.koddos.net/manjaro/
  ..... New_Zealand    : http://manjaro.mirrors.theom.nz/
  1.155 Norway         : http://mirror.terrahost.no/linux/manjaro/
  1.440 Poland         : https://mirror.tuchola-dc.pl/manjaro/
  0.122 Sweden         : https://ftp.lysator.liu.se/pub/manjaro/
  0.150 Sweden         : ftp://ftp.lysator.liu.se/pub/manjaro/
  1.265 Ukraine        : http://mirrors.colocall.net/manjaro/
  ..... Ukraine        : ftp://mirrors.colocall.net/manjaro/

::ERROR ftp error: error_perm('550 Failed to change directory.')
  0.221
  1.175 United_Kingdom : http://manjaro.mirrors.uk2.net/
  1.700 United_States  : https://mirror.math.princeton.edu/pub/manjaro/
  1.856 United_States  : https://mirror.dacentec.com/manjaro/
  2.023 United_States  : https://mirrors.gigenet.com/manjaro/
  1.558 United_States  : http://mirrors.gigenet.com/manjaro/
::INFO User generated mirror list
::------------------------------------------------------------
::INFO Custom mirror file saved: /var/lib/pacman-mirrors/custom-mirrors.json
::INFO Writing mirror list
::Denmark         : https://www.uex.dk/public/manjaro/unstable/$repo/$arch
::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist

And a second run on my workstation (using time to measure runtime)

Result of sudo pacman-mirrors -c all -i -fc 27,66s user 0,31s system 35% cpu 1:19,05 total

➜  ~ time sudo pacman-mirrors -c all -i -fc
::INFO Downloading mirrors from Manjaro
::INFO => Mirror pool: https://repo.manjaro.org/mirrors.json
::INFO => Mirror status: http://repo.manjaro.org/status.json
::INFO Using default mirror file
::INFO Querying mirrors - This may take some time
  1.948 Australia      : https://manjaro.lucassymons.net/
  0.902 Austria        : http://mirror.easyname.at/manjaro/
  0.351 Austria        : ftp://mirror.easyname.at/manjaro/
  0.888 Belgium        : https://mirror.futureweb.be/manjaro/
  0.812 Belgium        : http://mirror.futureweb.be/manjaro/
  2.368 Brazil         : https://manjaro.c3sl.ufpr.br/
  1.682 Brazil         : https://www.caco.ic.unicamp.br/manjaro/
  1.152 Bulgaria       : https://manjaro.ipacct.com/manjaro/
  1.083 Bulgaria       : http://manjaro.telecoms.bg/
  1.582 Canada         : https://osmirror.org/manjaro/
  ..... Chile          : http://manjaro.dcc.uchile.cl/
  3.086 Chile          : https://mirror.ufro.cl/manjaro/
  ..... Chile          : https://mirror1.cl.netactuate.com/manjaro/
  ..... Chile          : http://mirror1.cl.netactuate.com/manjaro/

::ERROR Connection: HTTPConnectionPool(host='mirror1.cl.netactuate.com', port=80): Read timed out. (read timeout=2)

  ..... Chile          : ftp://mirror1.cl.netactuate.com/manjaro/
  0.674 Denmark        : https://www.uex.dk/public/manjaro/
  0.891 Germany        : https://mirror.alpix.eu/manjaro/
  0.857 Germany        : https://manjaro.re/
  0.785 Germany        : http://manjaro.re/
  0.941 Germany        : https://ftp.gwdg.de/pub/linux/manjaro/
  0.848 Germany        : http://ftp.gwdg.de/pub/linux/manjaro/
  0.593 Germany        : ftp://ftp.gwdg.de/pub/linux/manjaro/
  0.927 Germany        : https://manjaro.moson.eu/
  0.836 Germany        : http://manjaro.moson.eu/
  0.922 Germany        : https://manjaro.moson.org/
  0.856 Germany        : http://manjaro.moson.org/
  1.083 Hungary        : https://quantum-mirror.hu/mirrors/pub/manjaro/
  0.972 Hungary        : http://quantum-mirror.hu/mirrors/pub/manjaro/
  ..... Japan          : http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/
  0.870 Netherlands    : https://mirror.easylee.nl/manjaro/
  0.806 Netherlands    : http://mirror.easylee.nl/manjaro/
  0.982 Netherlands    : https://manjaro.mirrors.lavatech.top/
  0.803 Netherlands    : http://manjaro.mirrors.lavatech.top/
  1.246 Netherlands    : https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/
  0.357 Netherlands    : ftp://ftp.nluug.nl/pub/os/Linux/distr/manjaro/
  0.881 Netherlands    : https://mirror.koddos.net/manjaro/
  ..... New_Zealand    : http://manjaro.mirrors.theom.nz/
  0.911 Norway         : http://mirror.terrahost.no/linux/manjaro/
  1.938 Poland         : https://mirror.tuchola-dc.pl/manjaro/
  0.155 Sweden         : https://ftp.lysator.liu.se/pub/manjaro/
  0.153 Sweden         : ftp://ftp.lysator.liu.se/pub/manjaro/
  1.015 Ukraine        : http://mirrors.colocall.net/manjaro/
  ..... Ukraine        : ftp://mirrors.colocall.net/manjaro/

::ERROR ftp error: error_perm('550 Failed to change directory.')
  0.220
  ..... United_Kingdom : http://manjaro.mirrors.uk2.net/
  1.470 United_States  : https://mirror.math.princeton.edu/pub/manjaro/
  1.609 United_States  : https://mirror.dacentec.com/manjaro/
  1.779 United_States  : https://mirrors.gigenet.com/manjaro/
  1.239 United_States  : http://mirrors.gigenet.com/manjaro/
::INFO User generated mirror list
::------------------------------------------------------------
::INFO Custom mirror file saved: /var/lib/pacman-mirrors/custom-mirrors.json
::INFO Writing mirror list
::Denmark         : https://www.uex.dk/public/manjaro/unstable/$repo/$arch
::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist
sudo pacman-mirrors -c all -i -fc  27,66s user 0,31s system 35% cpu 1:19,05 total