Linux – “show_signal_msg: N callbacks suppressed” then pegged at 100% and machine unresponsive

linuxlinux-kernelserver-crashes

This happened on an Ubuntu 14.04 64-bit DigitalOcean Droplet:

Apr 22 02:17:02 localhost CRON[32514]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) 
Apr 22 03:16:59 localhost kernel: [211877.884132] show_signal_msg: 12 callbacks suppressed 
Apr 22 03:16:59 localhost kernel: [211877.884140] python[2376]: segfault at 24 ip 00000000004c278f sp 00007fbad163caa0 error 6 in python2.7[400000+2bd000]

Right around 3:16 AM, the CPU spiked up to 100%, and the machine became unresponsive to ping, SSH and (remote) console:

http://imgur.com/hMSH5SV.png

How could the "callback suppressed" throttling appear before the first segfault?

http://lxr.free-electrons.com/source/arch/x86/mm/fault.c#L727

In general, how could a few segfaults cause the kernel to lock up? The offending process was in 'while :; do python script.py; sleep 1; done' (NOTE sleep), was running with 'nice 10' and had an increased oom_adj so that the kernel would kill it first:

open('/proc/self/oom_adj', 'w').write('10')
os.nice(10)
Related Topic