public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
From: "nicholas at nicholaswilson dot me.uk" <sourceware-bugzilla@sourceware.org> To: glibc-bugs@sourceware.org Subject: [Bug nis/15819] New: Hang in getaddrinfo using NIS with setitimer Date: Tue, 06 Aug 2013 14:26:00 -0000 [thread overview] Message-ID: <bug-15819-131@http.sourceware.org/bugzilla/> (raw) http://sourceware.org/bugzilla/show_bug.cgi?id=15819 Bug ID: 15819 Summary: Hang in getaddrinfo using NIS with setitimer Product: glibc Version: 2.13 Status: NEW Severity: normal Priority: P2 Component: nis Assignee: unassigned at sourceware dot org Reporter: nicholas at nicholaswilson dot me.uk CC: kukuk at suse dot de We call getaddrinfo inside our Xorg module. Xorg unfortunately uses setitimer to generate recurring SIGALRM notifications, at 20ms intervals. This can cause various calls to libc to hang. This is a typical stack trace: #0 0xffffe402 in __kernel_vsyscall () #1 0x00960e6d in poll () from /lib/tls/i686/nosegneg/libc.so.6 #2 0x0098e431 in clntudp_call () from /lib/tls/i686/nosegneg/libc.so.6 #3 0x00b49f84 in do_ypcall () from /lib/libnsl.so.1 #4 0x00b4a6c0 in yp_match () from /lib/libnsl.so.1 #5 0xf77aa351 in internal_gethostbyname2_r () from /lib/libnss_nis.so.2 #6 0x009809bb in gethostbyname2_r@@GLIBC_2.1.2 () from /lib/tls/i686/nosegneg/libc.so.6 #7 0x0094f4ea in gaih_inet () from /lib/tls/i686/nosegneg/libc.so.6 #8 0x00952c2d in getaddrinfo () from /lib/tls/i686/nosegneg/libc.so.6 The issue is that clntudp_call retries calls to poll() with every EINTR, but does not adjust the timeout. See sunrpc/clnt_udp.c:L403. poll() is called repeatedly with the same timeout; we want clntudp_call() to eventually return within utimeout seconds, but when setitemer is using a shorter timeout, clntudp_call loops forever. The fix is to adjust the timeout to poll each time we loop. (This is the normal way to handle EINTR with timeouts.) -- You are receiving this mail because: You are on the CC list for the bug.
next reply other threads:[~2013-08-06 14:26 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-08-06 14:26 nicholas at nicholaswilson dot me.uk [this message] 2014-06-13 13:14 ` [Bug nis/15819] " fweimer at redhat dot com 2014-10-31 4:34 ` aoliva at sourceware dot org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-15819-131@http.sourceware.org/bugzilla/ \ --to=sourceware-bugzilla@sourceware.org \ --cc=glibc-bugs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).