|
Bugzilla – Full Text Bug Listing |
| Summary: | latest Factory update to aria2 broke zypper/YaST | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.2 | Reporter: | Forgotten User tAfYx3p_c_ <forgotten_tAfYx3p_c_> |
| Component: | libzypp | Assignee: | Peter Poeml <poeml> |
| Status: | VERIFIED FIXED | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Major | ||
| Priority: | P5 - None | CC: | binner, estellnb, f.leerink, forgotten_--EoyBps8f, forgotten_6Bw0Ifx-X6, matwey.kornilov, roebenack.b, tatsuhiro.t, zypp-maintainers |
| Version: | Factory | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
aria2 debug log (working)
aria2 debug log (non-working) arai2.stats (after non-working run) |
||
|
Description
Forgotten User tAfYx3p_c_
2009-08-19 19:09:03 UTC
I don't have any problem, maybe something in your setup? What's your aria2 version? Mine is: $ rpm -qa aria2 aria2-1.5.1-1.1 (btw, pls don't touch the priority field, that's for the developers to set). Please attach a verbose log file for the current (non-working) and the previous (working) aria2c version. Either as aria2c --log=aria2c.working.log http://mirror.yandex.ru/opensuse/factory/repo/oss/content aria2c --log=aria2c.non-working.log http://mirror.yandex.ru/opensuse/factory/repo/oss/content Or by editing /root/.aria2/aria2.conf and then running zypper. Please also attach /var/cache/zypp/aria2.stats after the successful and the failed run. Thanks! Created attachment 314347 [details]
aria2 debug log (working)
Created attachment 314348 [details]
aria2 debug log (non-working)
Created attachment 314349 [details]
arai2.stats (after non-working run)
Thanks Antony! Will look at the logs in a bit. I realize that I should have read your initial report more closely. It already contained more information than I understood when I read it this morning. I overlooked that you directly accessed mirror.yandex.ru in the first place. I can actually reproduce the bug exactly here: % aria2c http://mirror.yandex.ru/opensuse/packman/11.1/repodata/repomd.xml 2009-08-20 18:51:16.966576 WARN - You may encounter the certificate verification error with HTTPS server. See --ca-certificate and --check-certificate option. 2009-08-20 18:51:17.119902 ERROR - CUID#6 - Download aborted. URI=http://mirror.yandex.ru/opensuse/packman/11.1/repodata/repomd.xml Exception: [AbstractCommand.cc:195] URI=http://mirror.yandex.ru/opensuse/packman/11.1/repodata/repomd.xml -> [SocketCore.cc:287] Failed to connect to the host 2a02:6b8:0:201::1, cause: all addresses failed Download Results: gid|stat|avg speed |path/URI ===+====+===========+=========================================================== 1| ERR| n/a|http://mirror.yandex.ru/opensuse/packman/11.1/repodata/repomd.xml Status Legend: (ERR):error occurred. aria2 will resume download if the transfer is restarted. If there are any errors, then see the log file. See '-l' option in help/man page for details. mirror.yandex.ru resolves to four IPv4 addresses (in a round-robin fashion) and one IPv6 address: % host mirror.yandex.ru mirror.yandex.ru has address 77.88.19.73 mirror.yandex.ru has address 77.88.19.74 mirror.yandex.ru has address 93.158.155.193 mirror.yandex.ru has address 77.88.19.68 mirror.yandex.ru has IPv6 address 2a02:6b8:0:201::1 Tatsuhiro, do you mind me taking you into Cc here? This looks indeed like a regression in aria2c 1.5.1 over 1.4.1. I'm happy to open an issue for this in the aria2c tracker, if you prefer!
Below is strace log from aria2c accessing mirror.yandex.ru. aria2c is run on openSUSE 11.0 here, with a caching nameserver on localhost.
connect(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 28) = 0
fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
gettimeofday({1250787374, 375391}, NULL) = 0
poll([{fd=5, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1
send(5, "\300:\1\0\0\1\0\0\0\0\0\0\6mirror\6yandex\2ru\0\0\34"..., 34, MSG_NOSIGNAL) = 34
poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
ioctl(5, FIONREAD, [208]) = 0
recvfrom(5, "\300:\201\200\0\1\0\1\0\6\0\1\6mirror\6yandex\2ru\0\0\34"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 208
close(5) = 0
time(NULL) = 1250787374
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 5
connect(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 28) = 0
fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
gettimeofday({1250787374, 378695}, NULL) = 0
poll([{fd=5, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1
send(5, "\247\366\1\0\0\1\0\0\0\0\0\0\6mirror\6yandex\2ru\0\0\1"..., 34, MSG_NOSIGNAL) = 34
poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
ioctl(5, FIONREAD, [244]) = 0
recvfrom(5, "\247\366\201\200\0\1\0\4\0\6\0\1\6mirror\6yandex\2ru\0\0\1"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 244
close(5) = 0
open("/etc/gai.conf", O_RDONLY) = 5
fstat64(5, {st_mode=S_IFREG|0644, st_size=2689, ...}) = 0
fstat64(5, {st_mode=S_IFREG|0644, st_size=2689, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80c9000
read(5, "# Configuration for getaddrinfo("..., 4096) = 2689
read(5, "", 4096) = 0
close(5) = 0
munmap(0xb80c9000, 4096) = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 5
connect(5, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "2a02:6b8:0:201::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
This failed - okay. Now, aria2c connects to the other addresses, which works, but it keeps trying and gives up after trying all four addresses:
connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("93.158.155.193")}, 16) = 0
getsockname(5, {sa_family=AF_INET6, sin6_port=htons(58831), inet_pton(AF_INET6, "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("77.88.19.68")}, 16) = 0
getsockname(5, {sa_family=AF_INET6, sin6_port=htons(43340), inet_pton(AF_INET6, "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("77.88.19.73")}, 16) = 0
getsockname(5, {sa_family=AF_INET6, sin6_port=htons(35944), inet_pton(AF_INET6, "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("77.88.19.74")}, 16) = 0
getsockname(5, {sa_family=AF_INET6, sin6_port=htons(43049), inet_pton(AF_INET6, "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(5) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 5
bind(5, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(5, {sa_family=AF_NETLINK, pid=3857, groups=00000000}, [12]) = 0
time(NULL) = 1250787374
sendto(5, "\24\0\0\0\26\0\1\3.\200\215J\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(5, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"8\0\0\0\24\0\2\0.\200\215J\21\17\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 116
recvmsg(5, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0.\200\215J\21\17\0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(5, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0.\200\215J\21\17\0\0\0\0\0\0\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(5) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP) = 5
setsockopt(5, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(5, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "2a02:6b8:0:201::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
close(5) = 0
write(1, "\n", 1
) = 1
gettimeofday({1250787374, 389911}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0
write(1, "2009-08-20 18:56:14.389911 ERROR"..., 1322009-08-20 18:56:14.389911 ERROR - CUID#6 - Download aborted. URI=http://mirror.yandex.ru/opensuse/packman/11.1/repodata/repomd.xml
) = 132
So finally, it logs the exception:
write(1, "Exception: [AbstractCommand.cc:1"..., 208Exception: [AbstractCommand.cc:195] URI=http://mirror.yandex.ru/opensuse/packman/11.1/repodata/repomd.xml
-> [SocketCore.cc:287] Failed to connect to the host 2a02:6b8:0:201::1, cause: all addresses failed
I fixed this bug in r1498 and yes this is a regression since 1.5.0. When connecting to the first resolved address is failed, then aria2 don't try another one. This is the cause of bug. In strace log, aria2 seems to connect to all resolved address, but it is not. > connect(5, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, > "2a02:6b8:0:201::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 > ENETUNREACH (Network is unreachable) > > > This failed - okay. Now, aria2c connects to the other addresses, which works, > but it keeps trying and gives up after trying all four addresses: > > > > connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = > 0 > connect(5, {sa_family=AF_INET, sin_port=htons(0), > sin_addr=inet_addr("93.158.155.193")}, 16) = 0 > getsockname(5, {sa_family=AF_INET6, sin6_port=htons(58831), inet_pton(AF_INET6, > "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = > 0 > connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = > 0 > connect(5, {sa_family=AF_INET, sin_port=htons(0), > sin_addr=inet_addr("77.88.19.68")}, 16) = 0 > getsockname(5, {sa_family=AF_INET6, sin6_port=htons(43340), inet_pton(AF_INET6, > "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = > 0 > connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = > 0 > connect(5, {sa_family=AF_INET, sin_port=htons(0), > sin_addr=inet_addr("77.88.19.73")}, 16) = 0 > getsockname(5, {sa_family=AF_INET6, sin6_port=htons(35944), inet_pton(AF_INET6, > "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = > 0 > connect(5, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = > 0 > connect(5, {sa_family=AF_INET, sin_port=htons(0), > sin_addr=inet_addr("77.88.19.74")}, 16) = 0 > getsockname(5, {sa_family=AF_INET6, sin6_port=htons(43049), inet_pton(AF_INET6, > "::ffff:83.133.126.38", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = > 0 > close(5) = 0 > These attempt to connecting all resolved addresses were done by getaddrinfo() system call. Not by aria2's application code. aria2's first failed attempt is way below: >connect(5, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, >"2a02:6b8:0:201::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 >ENETUNREACH (Network is unreachable) It is interesting to know why getaddrinfo is connecting to these addresses, but it is not to related this issue. Anyway, the fix to this regression is in svn repository and the new release 1.5.2 is about to release. Marvellous. Thank you so much. I'm building updated packages and submit them directly afterwards. *** Bug 533546 has been marked as a duplicate of this bug. *** I'm happy to report that new package version resolves the issue. Where can those "updated packages" be found? Have they been submitted to Factory? *** Bug 535073 has been marked as a duplicate of this bug. *** aria2-1.5.2 is in Factory since quite some time. Thanks to everyone involved! *** Bug 537108 has been marked as a duplicate of this bug. *** Hello Stephan, I had read through http://en.opensuse.org/Bugs:Most_Annoying_Bugs_11.2_dev before installing, but I it did not pick that up as the course of the problem. I must say however that at the time of the install problem I had no access to that URL. Reading through this bugreport it is still unclear to me how I can correct the problem preferably via yast. I understand that I need aria2-1.5.2 but how do I get that while Yast is not working. Sorry I am a simple openSUSE fan. Regards, Frans I installed OS11.2 gold on a friend's 64bit computer and got a similar problem. Net connection is OK (I first disabled IPV6 with ipv6.disable=1), I can surf on the net, I can browse into the repos, but with zypper I cannot add/enable/refresh/install any repository. See the forum discussion: http://forums.opensuse.org/applications/425546-still-not-able-update.html I think this bug should be reopened Hello together, I had the problem too. I did upgrade from openSuSE 10.3 to 11.0 by zypper (add new repositories, zypper ref, zypper dup). All worked fine. After this I did an update from 11.0 -> 11.1. Zypper worked fine. Then I did an update of zypper with adding the repos of 11.2 and enter "zypper inst zypper". After clening up different dependencies, "zypper dup" does not work anymore. After I had restored my VM-Ware-Snapshot, I did a zypper dup without updating zypper by himself. The Dist-Update worked fine, but after this I get allways the same error: ============================================0 ws002-6859-667:/home/de04566 # zypper ar ftp://ftp5.gwdg.de/pub/linux/suse/opensuse/update/11.2 openSuSE_Update Repository 'openSuSE_Update' wird hinzugefügt [fertig] Repository 'openSuSE_Update' erfolgreich hinzugefügt Aktiviert: Ja Autoaktualisierung: Nein URI: ftp://ftp5.gwdg.de/pub/linux/suse/opensuse/update/11.2 ws002-6859-667:/home/de04566 # zypper ref Metadaten von Repository 'openSuSE_Update' werden abgerufen [\]/repodata/repomd.xml konnte von ftp://ftp5.gwdg.de/pub/linux/suse/opensuse/update/11.2 nicht abgerufen werden Abbrechen, wiederholen, ignorieren? [a/w/i/?] (a): a Metadaten von Repository 'openSuSE_Update' werden abgerufen [Fehler] Repository 'openSuSE_Update' ist ungültig. Can't provide /repodata/repomd.xml : /repodata/repomd.xml konnte von ftp://ftp5.gwdg.de/pub/linux/suse/opensuse/update/11.2 nicht abgerufen werden Bitte überprüfen Sie, ob die für dieses Repository bestimmten URIs zu einem gültigen Repository verweisen. Repository 'openSuSE_Update' wird aufgrund des obigen Fehlers übersprungen. Die Repositories konnten aufgrund von Fehlern nicht aktualisiert werden. =================================== We have a proxy here, so I had to edit the /root/.curlrc at OSS10.3 to work. This is why the 'ar'option of zypper work, but the ref option fails. After some minutes of trying and searching the web, I had found the following hint on: http://linux.derkeiler.com/Mailing-Lists/SuSE/2009-08/msg01072.html --> You can work around it by doing "export ZYPP_ARIA2C=0" and zypper dup after that. <-- Now "zypper ref" work again without any errors (also yast). I have no idea of programming, but this solved my problem! The aria2 version of my system was and still is aria2-1.5.2-2.3.1.i586 If you want me to test anything, feel free to contact me. I am not the only one with this problem, as Alvise C mentioned before. Alvise, Bernd, these new aria problems probably have different cause. Please create new bugreports. Try to reproduce the problem also directly with aria2c on the command line, and attach the resulting log, e.g.: $ aria2c --log myaria2c.log ftp://ftp5.gwdg.de/pub/linux/suse/opensuse/update/11.2/repodata/repomd.xml If it works directly with aria2c, at least attach your zypper.log. |