https://bugzilla.novell.com/show_bug.cgi?id=416404
Summary: Resolver blocks and cannot be aborted (ping) Product: openSUSE 11.0 Version: Final Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Basesystem AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: lmb@novell.com QAContact: qa@suse.de Found By: Development
Created an attachment (id=232808) --> (https://bugzilla.novell.com/attachment.cgi?id=232808) strace -ro from ping
If I call "ping dale.suse.de" on my 11.0 system, tries to lookup the address, which can take a while. That is annoying, but more annoying is that I cannot abort the lookup:
ping dale.suse.de PING dale.suse.de (10.10.2.87) 56(84) bytes of data. ^C^C^C^C^C^C^C^C64 bytes from 10.10.2.87: icmp_seq=1 ttl=62 time=38.0 ms
--- dale.suse.de ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 38.037/38.037/38.037/0.000 ms
As you can see, the system did not respond to the SIGINT immediately; in fact, this takes >5 seconds!
A direct strace to the console can be aborted immediately:
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.1")}, 28) = 0 fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0 gettimeofday({1218486639, 30936}, NULL) = 0 poll([{fd=4, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1 send(4, "\370\210\1\0\0\1\0\0\0\0\0\0\00287\0012\00210\00210\7in-addr\4"..., 41, MSG_NOSIGNAL) = 41 poll(^C <unfinished ...>
If I instruct syslog to log to a file (attached), it exhibits the same behaviour of being uninterruptible.
It seems that ping blocks SIGINT to terminate cleanly and with printing the summary stats, but it does so before the possibly time-consuming lookup has completed. (This is also obvious from the fact that it is impossible to abort before the first ping packet has been sent.)
I suggest to move the signal trickery to a later point in the code.
https://bugzilla.novell.com/show_bug.cgi?id=416404
Cyril Hrubis chrubis@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |chrubis@novell.com AssignedTo|bnc-team-screening@forge.provo.novell.com |pbaudis@novell.com
https://bugzilla.novell.com/show_bug.cgi?id=416404
User chrubis@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c1
Cyril Hrubis chrubis@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|pbaudis@novell.com |ms@novell.com
--- Comment #1 from Cyril Hrubis chrubis@novell.com 2008-08-15 06:49:49 MDT --- Oh sorry, it's not in glibc but in ping.
https://bugzilla.novell.com/show_bug.cgi?id=416404
Marcus Schaefer ms@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Resolver blocks and cannot be aborted (ping) |iputils: ping, resolver blocks and cannot be | |aborted
https://bugzilla.novell.com/show_bug.cgi?id=416404
User ms@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c2
--- Comment #2 from Marcus Schaefer ms@novell.com 2008-08-18 03:21:07 MDT --- that's correct there is some lookup before setup() is called which sets the signals. Would the following patch solve your problem
https://bugzilla.novell.com/show_bug.cgi?id=416404
User ms@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c3
--- Comment #3 from Marcus Schaefer ms@novell.com 2008-08-18 03:21:52 MDT --- Created an attachment (id=233826) --> (https://bugzilla.novell.com/attachment.cgi?id=233826) ping.c patch
https://bugzilla.novell.com/show_bug.cgi?id=416404
Marcus Schaefer ms@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO Info Provider| |lmb@novell.com
https://bugzilla.novell.com/show_bug.cgi?id=416404
Marcus Schaefer ms@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P2 - High
https://bugzilla.novell.com/show_bug.cgi?id=416404
User ms@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c4
--- Comment #4 from Marcus Schaefer ms@novell.com 2008-08-25 03:38:17 MDT --- any news here ?
https://bugzilla.novell.com/show_bug.cgi?id=416404
Marcus Schaefer ms@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Priority|P2 - High |P5 - None
https://bugzilla.novell.com/show_bug.cgi?id=416404
User ms@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c5
--- Comment #5 from Marcus Schaefer ms@novell.com 2008-09-04 04:41:03 MDT --- last chance to respond with at least some comment before closing this one
https://bugzilla.novell.com/show_bug.cgi?id=416404
User lmb@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c6
Lars Marowsky-Bree lmb@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW Info Provider|lmb@novell.com |
--- Comment #6 from Lars Marowsky-Bree lmb@novell.com 2008-09-04 04:47:26 MDT --- I think the patch looks good.
https://bugzilla.novell.com/show_bug.cgi?id=416404
User ms@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=416404#c7
Marcus Schaefer ms@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #7 from Marcus Schaefer ms@novell.com 2008-09-04 06:42:55 MDT --- ok, done, package submitted