This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][BZ #14719] Return EAI_SYSTEM from getaddrinfo if we run out of fds


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

Attachment: pgpA2I3SwHwTS.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]