Fedora uses a dynamic page to provide a list of mirrors for yum to try. The script in question, hosted at http://mirrors.fedoraproject.org/mirrorlist , checks the user country and returns a list of mirrors near the user. The problem with this script is that it often returns too few mirrors. For me, who is living in Brazil, it returns *only one* mirror, at UNICAMP: ~% curl 'http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-fc6&arch=i386' # repo = updates-released-fc6 country = BR arch = i386 http://www.las.ic.unicamp.br/pub/fedora/linux/core/updates/6/i386/ Having a single site completely kills the motivation for mirrors, you create a Single Point of Failure. And this is often the case, because UNICAMP is not a fast mirror, specially outside the brazilian academic network; also, it is not very stable, with common records of downtime. And also, being the only site returned on this list of mirrors, UNICAMP is overloaded serving the updates to the whole country. If the list is dynamic, it should return a list of at least 8 or 10 servers, no matter they are not on the same country. Perhaps, returning the whole list would be even better, since the yum-fastestmirror plugin is much more suited at picking a good mirror. But please, fix this script ASAP. I had to comment it on my fedora-updates.repo, and I'm using the baseurl for the repository, since UNICAMP was giving me a very bad headache with its downtime and latency on recent released packages. --- Note: this bug should go to "Fedora Infrastructure", but the page for entering a new bug (https://bugzilla.redhat.com/bugzilla/enter_bug.cgi) does not list Fedora Infrastructure.
add "country=global" to the end of it. Fedora Infrastructure no longer exists in bugzilla we have a ticketing system. On a side note, 8 to 10 servers is unreasonable as most countries don't have anywhere near that many mirrors. This is one of those things where if one mirror doesn't cut it for you there's an easy fix (country=global), though a permanent solution should probably be made. The question is whats the magic number? I'll take a look at the average number of mirrors / country (where the country has a mirror) and see what we're talking about. -Mike
Hello Mike, Thnaks, "country=global" worked. Perhaps this should be documented in a comment near mirrorlist= lines in fedora-{core,updates}.repo. About the idea of 8 to 10 servers, if the country doesn't have that many servers, just return all servers in that country and the remaining ones picked at random from other countries. For example, BR has a single mirror, so a query from Brazil would return the only mirror, plus 7 more random servers on other countries. NL has 4 mirrors, it would return these 4 and other 4 random servers on other countries. For countries with more than 8 servers, just return all local servers and let yum pick one at random. The more mirrors a country has, more are the chances of picking a local mirror. The idea is just avoiding the single point of failure. Thanks! Juliano
*** Bug 223668 has been marked as a duplicate of this bug. ***
Ok, here's what I've done. The default behavior is to default to the global list if the mirrors returned is less than 6. I'll be examining more approperate behavior (like returning countries that are close to the requestor) but the entire mirror system is getting a workover very soon so doing too much work on the current system is just waste. In the meantime, please let me know if this seems to work for those of you in countries that have small mirror lists. (basically what we're saying here is if the number of mirrors is small for you, just go back to the old way and return all mirrors)
Hi, I just tried the update and it works a lot better for me, I now don't get disconnected with "too many users" and reasonable speeds to boot. It still not perfect as some mirrors are very slow, but I'll try the yum plugin that addresses that (and the whole approach was after all being overhauled). Thanks for the quick response and keep up the good work! Best Regards, Stefan Axelsson