Bugzilla – Bug 558877
yast2 sw_single / aria2c takes a very long time to download anything. An ipv6 problem?
Last modified: 2009-12-16 12:50:00 UTC
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.4) Gecko/20091017 SUSE/2.0.0-1.1.3 SeaMonkey/2.0 yast2 sw_single takes a long time (1-2 minutes) to download the repositories xml files. Then even ridiculously small packages take 30 seconds or so to download. There is actually no downloading (like a timeout) for a long time, then a burst of packets being received. The culprit seems to be aria2c, as the same happens if aria2c is invoked directly. Removing aria2c altogether makes everything work fast and smooth. I had the same slow downloads with FF/seamonkey, and could only solve it by disabling ipv6 in the browser AND adding ipv6.disable=1 in the boot options. I don't see an option to disable ipv6 in aria2c, but there is clearly need for one... Reproducible: Always
Please attach the yast logfiles (see http://en.opensuse.org/Bugs/YaST).
Created attachment 330579 [details] yast2 logs
aria2c doesn't have an option to disable ipv6. Even if ipv6 is disabled by kernel, getaddrinfo() in glibc issues AAAA request, and this takes lots of time here. aria2c supports asynchronous DNS using c-ares library and only supports ipv4. But it seems aria2 build in opensuse are not compiled with c-ares.
Indeed, installing libcares2 (and libcares-devel) seems to solve the problem.
No need to rebuild aria2c? Is it just a runtime recommendation?
My mistake, I had (compiled and) installed aria2c version 1.6.3 in the mean time. Removing version 1.6.3 and using stock aria2c still gives long timeout. So yes, installation of libcares2 and libcares-devel and then rebuild of aria2c is necessary, at least on my side.
aria2c has to be rebuilt with libcares and libcares-devel to enable IPV4 only async DNS. It has --async-dns=false option, when specified, it falls back to glibc getaddrinfo().
@Coolo: Wait for getaddrinfo fix in glibc (#556299), or update aria to introduce libcares, or both?
Updating to aria2 1.7.0 and using the newly intrduced --disable-ipv6 should solve this. *** This bug has been marked as a duplicate of bug 556299 ***