Need to provide a way for anonymous users to get a list of archive mirrors on their country (or continent, if there's none in their country)
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | Launchpad itself |
Medium
|
Guilherme Salgado | ||
Bug Description
Apt will soon start to choose the best mirror to use whenever an apt-get update/upgrade is ran, and it'll do that based on a list of mirrors given to it by launchpad. This list should include all mirrors on the same country that the user is at that point (we'll guess that by the user's IP address), or, if there's no mirrors on that country, we'll include other mirrors in countries that are in the same continent. This list will also always include archive.ubuntu.com, so that we have a fallback.
It's also important to note that a mirror can only be included in this list if it's an official mirror and has been successfully probed.
| Changed in launchpad: | |
| assignee: | nobody → salgado |
| importance: | Undecided → Medium |
| status: | Unconfirmed → Confirmed |
| Guilherme Salgado (salgado) wrote : | #1 |
| Guilherme Salgado (salgado) wrote : | #2 |
Independently of how we're going to store/cache the list of mirrors for each country, we can be sure that apt will have to first issue a request to launchpad so that we can determine the country the user is, using geoip.
After that is done, there may be a few different ways feed the list of mirrors to apt. Here are a couple of them:
1) Get a simple (text-only) list containing only the mirror URLs for a given country from the librarian and feed that data to apt. This file would be stored after each probe run and we'd use a separate table to keep the country/mirror-list mapping.
2) Point apt to a URL of the form http://
| Changed in launchpad: | |
| status: | Confirmed → In Progress |
| Changed in launchpad: | |
| status: | In Progress → Fix Committed |
| Changed in launchpad: | |
| status: | Fix Committed → Fix Released |
| Guilherme Salgado (salgado) wrote : | #3 |
For now we have http://

Since this is a service that may get several hits per second, we need to either make it very light or cache these country lists somehow.
One option would be to generate these lists for each country right after every run of the mirror prober, since it's very unlikely that we have changes (like a mirror being made unofficial) between two probes, causing the lists to change.