[PATCH][BZ #14719] Return EAI_SYSTEM from getaddrinfo if we run out of fds
Dmitry V. Levin
ldv@altlinux.org
Mon Apr 8 11:41:00 GMT 2013
On Tue, Apr 02, 2013 at 05:49:40PM +0400, Dmitry V. Levin wrote:
> On Tue, Apr 02, 2013 at 12:48:44PM +0530, Siddhesh Poyarekar wrote:
> > On 1 April 2013 22:41, Dmitry V. Levin <ldv@altlinux.org> wrote:
> > > $ ip a
> > > 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
> > > link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> > > inet 127.0.0.1/8 scope host lo
> > > $ ip r
> >
> > OK, so bring down network *and* unload networking modules.
>
> Or, alternatively, unshare network using CLONE_NEWNET and
> create loopback interface there.
>
> > I got an EAI_SYSTEM when I linked against a stale build of last
> > month's code (March 26th to be specific). I did a clean build there
> > and it has been giving me EAI_NONAME ever since. So I'm still not
> > able to reproduce the problem the way you are. Also, are you sure
> > that the behaviour before the patch was EAI_AGAIN and not EAI_NONAME?
>
> Sorry, it was actually EAI_NONAME and not EAI_AGAIN, I've been misled
> by comment in test-getaddrinfo.c
There is a slightly different case when it also shouldn't be EAI_SYSTEM:
$ strace -econnect,sendto ./t
...
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.0.43.10")}, 16) = 0
sendto(3, "\317I\1\0\0\1\0\0\0\0\0\0\7example\3net\0\0\1\0\1", 29, MSG_NOSIGNAL, NULL, 0) = -1 EPERM (Operation not permitted)
...
System error: Resource temporarily unavailable
+++ exited with 1 +++
Such an environment could be constructed, e.g. by filtering outgoing
packets using iptables (-j REJECT --reject-with icmp-net-unreachable).
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20130408/dbdb1887/attachment.sig>
More information about the Libc-alpha
mailing list