Mailinglist Archive: opensuse-bugs (7519 mails)
| < Previous | Next > |
[Bug 416404] New: Resolver blocks and cannot be aborted (ping)
- From: bugzilla_noreply@xxxxxxxxxx
- Date: Mon, 11 Aug 2008 14:37:00 -0600 (MDT)
- Message-id: <bug-416404-21960@xxxxxxxxxxxxxxxxxxxxxxxxx/>
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@xxxxxxxxxxxxxxxxxxxxxx
ReportedBy: lmb@xxxxxxxxxx
QAContact: qa@xxxxxxx
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.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
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@xxxxxxxxxxxxxxxxxxxxxx
ReportedBy: lmb@xxxxxxxxxx
QAContact: qa@xxxxxxx
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.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
| < Previous | Next > |