more important bugs at the top! * mod_asn fails sometimes and puts garbage into the env: 87.79.141.235 - - [16/Feb/2009:14:41:38 +0100] "GET /factory/repo/oss/suse/setup/descr/packages.gz HTTP/1.1" 200 2416300 "-" "ZYpp 5.25.0 (curl 7.19.0)" - r:- 145 2416594 -:- ASN:8422 P:87.78.0.0/15 size:- - - "-" 87.79.141.235 - - [16/Feb/2009:14:41:38 +0100] "GET /factory/repo/oss/suse/setup/descr/patterns HTTP/1.1" 200 164 "-" "ZYpp 5.25.0 (curl 7.19.0)" - r:- 142 431 -:- ASN:{&\x80\x02 P: size:- - - "-" 87.79.141.235 - - [16/Feb/2009:14:41:39 +0100] "GET /factory/repo/oss/license.tar.gz HTTP/1.1" 200 24492 "-" "ZYpp 5.25.0 (curl 7.19.0)" - r:- 131 24782 -:- ASN:8422 P:87.78.0.0/15 size:- - - "-" Further, I noticed that for 404s the lookup is correctly done (can be seen in the response headers), but ASN:- P:- is being logged. Empty logging also happens for 200s, when e.g. requesting something from /icons, so that fits the configuration: 87.79.141.235 - - [16/Feb/2009:15:55:43 +0100] "GET /icons/torrent.png HTTP/1.1" 200 3445 "http://download.opensuse.org/distribution/11.1/iso/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Shiira Safari/125" - r:- 405 3744 -:- ASN:- P:- size:- - - "-" But what about redirections exceptions, like size? 78.34.103.82 - - [16/Feb/2009:16:05:54 +0100] "GET /distribution/11.1/repo/oss/suse/setup/descr/patterns HTTP/1.1" 200 170 "-" "ZYpp 5.24.5 (curl 7.19.0)" - r:- 152 448 -:- ASN:8422 P:78.34.0.0/15 size:- - - "-" * when the AS is overridden with a query parameter, the one being logged/put into the headers is not the overriding one * scanner: when scanning via rsync, it reports symlinks (which are mode 0777) as world-writable directories: lrwxrwxrwx 1 root root 13 2009-03-01 05:29 /mounts/dist/unpacked/head-i586/usr/bin/pnmnoraw -> pnmtoplainpnm* rsync dir: 777 13 Sun Mar 1 05:29:31 2009 unpacked/head-i586/usr/bin/pnmnoraw That doesn't harm, because the symlinks are (intentionally) ignored anyway, but it clutters the output and of course is confusing. * check if the Vary header on Accept is added on all requests! * mod_geoip should be required as mod_form - and Apache should check at startup. On the other hand, it could be optional, because mod_mirrorbrain also works without mod_geoip (distributing requests world-wide, according to mirror priorities). So it could be a valid use case to run without mod_geoip. On the other hand, at least a warning should be issued, so admins get a hint when mod_geoip was simply forgotten. On the other hand, we could have a check that prevents starting, unless geoip usage is explicitely disabled (e.g. MirrorBrainRequireGeoIP off) * since "override countries" (overridden via query paramter) are not resolved into region, a wrong region is given in generated mirror lists: http://download.opensuse.org/distribution/11.1/repo/oss/suse/noarch/rubygem-rails-2.1.1-1.14.noarch.rpm?mirrorlist&country=ZA Found 2 mirrors which handle this country (ZA): <- ok Found 61 mirrors in other countries, but same continent (EU): <- wrong * mirrorlist give inaccurate readings for "number of mirrors", if some mirrors where not considered, because they are configured country-only or region-only (same_region=1 or same_country=1) As further effect of this bug, I just noticed that a mirror is missing from the ?mirrorlist mirror lists if it is configured as fallback mirror for a country: http://download.opensuse.org/repositories/KDE:/KDE4:/STABLE:/Desktop/openSUSE_11.1/KDE4-DEVEL.ymp?mirrorlist&country=tw ftp5 disappears from the list, when configured as fallback for Taiwan. It is correctly used though and appears on th list when actually used as fallback.