[Crash-utility] crash endlessly looping on stdout error

Dave Anderson anderson at redhat.com
Wed Feb 22 20:00:25 UTC 2012



----- Original Message -----

> Now I could check for a parent pid of 1 each time in readmem(),
> and kill it there, given readmem() is so regularly called, but
> since you're seeing scenarios that don't show a readmem() in
> the loop, that's not going to fly.  Perhaps a better plan would
> be to set up prctl(PR_SET_PDEATHSIG, SIGKILL) during initialization,
> and hope there's no unwanted side effects.
> 
> Dave
  
The prctl() works for both a readmem() loop, and for repeating signal
loop I was able to force that is somewhat similar to your second
example.

Killing the network connection on the two scenarios showed this:

$ strace -p 18992
... [ cut ] ... 
--- {si_signo=SIGTTOU, si_code=SI_KERNEL, si_value={int=1653142270, ptr=0x326288f2fe}} (Stopped (tty output)) ---
--- Stopped (tty output) by SIGTTOU ---
ioctl(10, SNDCTL_TMR_START or SNDRV_TIMER_IOCTL_TREAD or TCSETS, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
--- {si_signo=SIGTTOU, si_code=SI_KERNEL, si_value={int=1653142270, ptr=0x326288f2fe}} (Stopped (tty output)) ---
--- Stopped (tty output) by SIGTTOU ---
ioctl(10, SNDCTL_TMR_START or SNDRV_TIMER_IOCTL_TREAD or TCSETS, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
--- {si_signo=SIGTTOU, si_code=SI_KERNEL, si_value={int=1653142270, ptr=0x326288f2fe}} (Stopped (tty output)) ---
--- Stopped (tty output) by SIGTTOU ---
ioctl(10, SNDCTL_TMR_START or SNDRV_TIMER_IOCTL_TREAD or TCSETS, {B38400 opost isig -icanon -echo ...}) = ? ERESTARTSYS (To be restarted)
+++ killed by SIGKILL +++
$

$ strace -p 19607
... [ cut ] ...
lseek(3, 934634248, SEEK_SET)           = 934634248
read(3, "\0@\2739\0\210\377\377", 8)    = 8
lseek(3, 968508152, SEEK_SET)           = 968508152
read(3, "\20H\0048\0\210\377\377", 8)   = 8
lseek(3, 939739912, SEEK_SET)           = 939739912
read(3, "\20`\2667\0\210\377\377", 8)   = 8
lseek(3, 934634248, SEEK_SET)           = 934634248
read(3, "\0@\2739\0\210\377\377", 8)    = 8
+++ killed by SIGKILL +++
$

Seems like the way to go...

Dave




More information about the Crash-utility mailing list