After upgrading from debian lenny to squeeze (apache2 2.2.16-6+squeeze4 and php 5.3.10-1~dotdeb.1), my apache processes started to exit with segmentation fault. It happens every 5-30 minutes (for 1 process), so it does not do any impact right now. Problem is that sometimes instead of exiting with SIGSEGV, they just go crazy and loop with 100% system cpu usage in SIGBUS error:
# strace -p27635 Process 27635 attached - interrupt to quit --- SIGBUS (Bus error) @ 0 (0) --- --- SIGBUS (Bus error) @ 0 (0) --- --- SIGBUS (Bus error) @ 0 (0) --- --- SIGBUS (Bus error) @ 0 (0) --- --- SIGBUS (Bus error) @ 0 (0) --- --- SIGBUS (Bus error) @ 0 (0) ---
They don't respond to kill -9. But when I run strace on the process after killing it, it just repeats the SIGBUS twice and then exits.
# strace -p27635 Process 27635 attached - interrupt to quit --- SIGBUS (Bus error) @ 0 (0) --- --- SIGBUS (Bus error) @ 0 (0) --- +++ killed by SIGKILL +++
Why is the process unkillable without strace? How does running strace influence the process that it can exit?
(I know that there is probably something wrong with my setup of apache/php modules, but in this question I'm interested in the strange behaviour of the unkillable processes. I will ask another question if I am unable to fix apache/php.)