[Bug 1865207] perl-IO-Async: FTBFS in Fedora rawhide/f33: Failed test '->failure [3] gives EAI_NONAME or EAI_NODATA'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1865207



--- Comment #8 from Petr Pisar <ppisar@xxxxxxxxxx> ---
In mock environment there is an empty /etc/resolv.conf and thus glibc resolver
sends the DNS queries using UDP to 127.0.0.1:53. The new mock isolates the
network with namespaces, and because no DNS server listens on UDP/127.0.0.1:53,
an ICMP error is replied:

13:21:12.632469 IP 127.0.0.1.39746 > 127.0.0.1.domain: 12204+ A?
TbK4jM2M0OS.lm57DWIyu4i. (41)
E..Ei.@.@............B.5.1.D/............TbK4jM2M0OS.lm57DWIyu4i.....
13:21:12.632478 IP 127.0.0.1 > 127.0.0.1: ICMP 127.0.0.1 udp port domain
unreachable, length 77
E..aHP..@xxxxxxxxxxxxxxxxxxxxxxxx.@.@............B.5.1.D/............TbK4jM2M0OS.lm57DWIyu4i.....

then kernel reports an error on the socket:

socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
setsockopt(3, SOL_IP, IP_RECVERR, [1], 4) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("127.0.0.1")}, 16) = 0
poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}])
sendmmsg(3, [{msg_hdr={msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\274\20\1\0\0\1\0\0\0\0\0\0\vTbK4jM2M0OS\vlm57DWI"...,
iov_len=41}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, msg_len=41},
{msg_hdr={msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\262\22\1\0\0\1\0\0\0\0\0\0\vTbK4jM2M0OS\vlm57DWI"...,
iov_len=41}], msg_iovlen=1, msg_controllen=0, msg_flags=0}}], 2, MSG_NOSIGNAL)
= 1
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3,
revents=POLLOUT|POLLERR}])
sendto(3, "\262\22\1\0\0\1\0\0\0\0\0\0\vTbK4jM2M0OS\vlm57DWI"..., 41,
MSG_NOSIGNAL, NULL, 0) = 41
poll([{fd=3, events=POLLIN}], 1, 4999)  = 1 ([{fd=3, revents=POLLERR}])
close(3)                                = 0

And glibc getaddrinfo() translates the socket error to EAI_AGAIN code. It
cannot be EAI_NODATA, because there was no server reply that would confirm that
the domain name has now network address. It cannot be EAI_NONAME, because there
was no server reply to confirm that no such domain name exist. Next suitable
code would be EAI_FAIL to indicate a permanent error. EAI_AGAIN indicates a
temporary error.

Which one of the two is better in this case is questionable, but the
t/50resolver.t does not expect none of them and that's clearly a fault of the
test. Basically the test expects that a DNS server is available, but this is
not the of the mock environment.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
perl-devel mailing list -- perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to perl-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/perl-devel@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite Information]

  Powered by Linux