Comment 3 for bug 1697646

Revision history for this message
Santiago Gala (sgala) wrote :

This happens (or used to happen) also in 16.04.2 (current). I paste here a couple of evidences (17.04):

$ ps auxwww | grep ping
sgala 12545 96.5 0.0 20592 1020 pts/2 R+ 13:18 118:36 ping 192.168.25.96
(...)

$ sudo strace -p 12545
(...)
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
recvmsg(3, 0x7ffe0a5d0b00, MSG_DONTWAIT) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR}], 1, 164) = 1 ([{fd=3, revents=POLLERR}])
(...)

The ping is taking 100% CPU. After I killed the process, one can see that the command line was a plain "ping 192.168.25.96"

About ping version:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.04
DISTRIB_CODENAME=zesty
DISTRIB_DESCRIPTION="Ubuntu 17.04"
$ dpkg -l $(dpkg-query -S $(which ping) | awk -F: '{print $1}')
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================================-=====================-=====================-=======================================================================
ii iputils-ping 3:20161105-1ubuntu2 amd64 Tools to test the reachability of network hosts

I have also seen this going on with Ubuntu 16.04.2 LTS fully patched. I use something like ((ping -i 60 -B [address] >& /dev/null )&)& as a poor man's keepalive, and it jumps systematically to 100% CPU after one or two days.

Versions for 16.04.2:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
$ dpkg -l $(dpkg-query -S $(which ping) | awk -F: '{print $1}')
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================================-=====================-=====================-=======================================================================
ii iputils-ping 3:20121221-5ubuntu2 amd64 Tools to test the reachability of network hosts

Note there has been some time since I last observed the bug in 16.04.2, but I have just found my laptop spinning before I decided to look for the bug and post here.