I was going to add a php fetch group to mirror_sites.tcl:

http://trac.macports.org/ticket/20654

In those places where the list of php mirrors is currently hardcoded (php4, php5, php5extension) there are only 8 mirrors. The full list on the PHP web site shows 114 mirrors in 65 countries. I tried adding all of those to the new fetch group, but in testing it out, MacPorts tried to start 114 simultaneous pings to test the response times of every server. Not only did over half of the pings fail to spawn, none of those that did were answered. I think the attempt didn't go over so well with my wireless router which didn't exactly crash but network traffic slowed to a crawl until I rebooted it.

I had wanted to have the php fetch group in mirror_sites.tcl updated automatically from the list on the PHP web site, and already wrote a script to do that. But now it looks like 114 is too many. How many could I reasonably have, and how should I narrow it down? Or should MacPorts base be updated to handle larger mirror groups more gracefully? Maybe it could pick a handful of servers at random and use the fastest of that subset, but the handful it picks at random might by chance be servers that are nowhere near you.

Looks like the biggest existing mirror groups are debian (26) and savannah (29) to which you'd add the global MacPorts mirrors.


Attachment: php-fetch-group.diff
Description: Binary data

--->  Fetching php5
DEBUG: Executing proc-pre-org.macports.fetch-fetch-0
DEBUG: Executing org.macports.fetch (php5)
--->  php-5.3.0.tar.bz2 doesn't seem to exist in /mp/var/macports/distfiles/php5
DEBUG: Pinging am.php.net...
DEBUG: Pinging ar.php.net...
DEBUG: Pinging ar2.php.net...
DEBUG: Pinging at.php.net...
DEBUG: Pinging at2.php.net...
DEBUG: Pinging au.php.net...
DEBUG: Pinging au2.php.net...
DEBUG: Pinging be.php.net...
DEBUG: Pinging be2.php.net...
DEBUG: Pinging bg.php.net...
DEBUG: Pinging bg2.php.net...
DEBUG: Pinging br.php.net...
DEBUG: Pinging br2.php.net...
DEBUG: Pinging bs.php.net...
DEBUG: Pinging by.php.net...
DEBUG: Pinging ca.php.net...
DEBUG: Pinging ca2.php.net...
DEBUG: Pinging ca3.php.net...
DEBUG: Pinging ch.php.net...
DEBUG: Pinging cl.php.net...
DEBUG: Pinging cn.php.net...
DEBUG: Pinging cr.php.net...
DEBUG: Pinging cz2.php.net...
DEBUG: Pinging de.php.net...
DEBUG: Pinging de2.php.net...
DEBUG: Pinging de3.php.net...
DEBUG: Pinging dk.php.net...
DEBUG: Pinging dk2.php.net...
DEBUG: Pinging ee.php.net...
DEBUG: Pinging ee2.php.net...
DEBUG: Pinging es.php.net...
DEBUG: Pinging es2.php.net...
DEBUG: Pinging fi.php.net...
DEBUG: Pinging fi2.php.net...
DEBUG: Pinging fr.php.net...
DEBUG: Pinging fr2.php.net...
DEBUG: Pinging fr3.php.net...
DEBUG: Pinging gr.php.net...
DEBUG: Pinging gr2.php.net...
DEBUG: Pinging gt.php.net...
DEBUG: Pinging hk.php.net...
DEBUG: Pinging hk2.php.net...
DEBUG: Pinging hr.php.net...
DEBUG: Pinging hu.php.net...
DEBUG: Pinging hu2.php.net...
DEBUG: Pinging id.php.net...
DEBUG: Pinging id2.php.net...
DEBUG: Spawning ping for ie.php.net failed
DEBUG: Spawning ping for il.php.net failed
DEBUG: Spawning ping for il2.php.net failed
DEBUG: Spawning ping for in.php.net failed
DEBUG: Spawning ping for in2.php.net failed
DEBUG: Spawning ping for in3.php.net failed
DEBUG: Spawning ping for ir.php.net failed
DEBUG: Spawning ping for is.php.net failed
DEBUG: Spawning ping for it2.php.net failed
DEBUG: Spawning ping for jm.php.net failed
DEBUG: Spawning ping for jm2.php.net failed
DEBUG: Spawning ping for jp.php.net failed
DEBUG: Spawning ping for jp2.php.net failed
DEBUG: Spawning ping for kr.php.net failed
DEBUG: Spawning ping for kr2.php.net failed
DEBUG: Spawning ping for li.php.net failed
DEBUG: Spawning ping for lt.php.net failed
DEBUG: Spawning ping for lt2.php.net failed
DEBUG: Spawning ping for lu.php.net failed
DEBUG: Spawning ping for lu2.php.net failed
DEBUG: Spawning ping for lv.php.net failed
DEBUG: Spawning ping for md.php.net failed
DEBUG: Spawning ping for mx.php.net failed
DEBUG: Spawning ping for mx2.php.net failed
DEBUG: Spawning ping for my.php.net failed
DEBUG: Spawning ping for my2.php.net failed
DEBUG: Spawning ping for nc.php.net failed
DEBUG: Spawning ping for nl.php.net failed
DEBUG: Spawning ping for nl2.php.net failed
DEBUG: Spawning ping for nl3.php.net failed
DEBUG: Spawning ping for no.php.net failed
DEBUG: Spawning ping for no2.php.net failed
DEBUG: Spawning ping for nz.php.net failed
DEBUG: Spawning ping for nz2.php.net failed
DEBUG: Spawning ping for pa.php.net failed
DEBUG: Spawning ping for pa2.php.net failed
DEBUG: Spawning ping for pl.php.net failed
DEBUG: Spawning ping for pl2.php.net failed
DEBUG: Spawning ping for pt.php.net failed
DEBUG: Spawning ping for pt2.php.net failed
DEBUG: Spawning ping for ro.php.net failed
DEBUG: Spawning ping for ro2.php.net failed
DEBUG: Spawning ping for ru.php.net failed
DEBUG: Spawning ping for ru2.php.net failed
DEBUG: Spawning ping for se2.php.net failed
DEBUG: Spawning ping for sg.php.net failed
DEBUG: Spawning ping for sg2.php.net failed
DEBUG: Spawning ping for si.php.net failed
DEBUG: Spawning ping for si2.php.net failed
DEBUG: Spawning ping for sk.php.net failed
DEBUG: Spawning ping for th.php.net failed
DEBUG: Spawning ping for th2.php.net failed
DEBUG: Spawning ping for tr.php.net failed
DEBUG: Spawning ping for tw.php.net failed
DEBUG: Spawning ping for ua.php.net failed
DEBUG: Spawning ping for ua2.php.net failed
DEBUG: Spawning ping for uk.php.net failed
DEBUG: Spawning ping for uk2.php.net failed
DEBUG: Spawning ping for uk3.php.net failed
DEBUG: Spawning ping for us.php.net failed
DEBUG: Spawning ping for us2.php.net failed
DEBUG: Spawning ping for us3.php.net failed
DEBUG: Spawning ping for ve2.php.net failed
DEBUG: Spawning ping for vn.php.net failed
DEBUG: Spawning ping for vn2.php.net failed
DEBUG: Spawning ping for www.php.net failed
DEBUG: Spawning ping for yu2.php.net failed
DEBUG: Spawning ping for distfiles.macports.org failed
DEBUG: Spawning ping for arn.se.distfiles.macports.org failed
DEBUG: Spawning ping for aarnet.au.distfiles.macports.org failed
DEBUG: am.php.net ping time is 10000
DEBUG: ar.php.net ping time is 10000
DEBUG: ar2.php.net ping time is 10000
DEBUG: at.php.net ping time is 10000
DEBUG: at2.php.net ping time is 10000
DEBUG: au.php.net ping time is 10000
DEBUG: au2.php.net ping time is 10000
DEBUG: be.php.net ping time is 10000
DEBUG: be2.php.net ping time is 10000
DEBUG: bg.php.net ping time is 10000
DEBUG: bg2.php.net ping time is 10000
DEBUG: br.php.net ping time is 10000
DEBUG: br2.php.net ping time is 10000
DEBUG: bs.php.net ping time is 10000
DEBUG: by.php.net ping time is 10000
DEBUG: ca.php.net ping time is 10000
DEBUG: ca2.php.net ping time is 10000
DEBUG: ca3.php.net ping time is 10000
DEBUG: ch.php.net ping time is 10000
DEBUG: cl.php.net ping time is 10000
DEBUG: cn.php.net ping time is 10000
DEBUG: cr.php.net ping time is 10000
DEBUG: cz2.php.net ping time is 10000
DEBUG: de.php.net ping time is 10000
DEBUG: de2.php.net ping time is 10000
DEBUG: de3.php.net ping time is 10000
DEBUG: dk.php.net ping time is 10000
DEBUG: dk2.php.net ping time is 10000
DEBUG: ee.php.net ping time is 10000
DEBUG: ee2.php.net ping time is 10000
DEBUG: es.php.net ping time is 10000
DEBUG: es2.php.net ping time is 10000
DEBUG: fi.php.net ping time is 10000
DEBUG: fi2.php.net ping time is 10000
DEBUG: fr.php.net ping time is 10000
DEBUG: fr2.php.net ping time is 10000
DEBUG: fr3.php.net ping time is 10000
DEBUG: gr.php.net ping time is 10000
DEBUG: gr2.php.net ping time is 10000
DEBUG: gt.php.net ping time is 10000
DEBUG: hk.php.net ping time is 10000
DEBUG: hk2.php.net ping time is 10000
DEBUG: hr.php.net ping time is 10000
DEBUG: hu.php.net ping time is 10000
DEBUG: hu2.php.net ping time is 10000
DEBUG: id.php.net ping time is 10000
DEBUG: id2.php.net ping time is 10000
--->  Attempting to fetch php-5.3.0.tar.bz2 from 
http://ie.php.net/distributions/php5
^C
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to