Re: Advice on debuging the fork syscall hanging forever

From: Miguel Freitas
Date: Wed Apr 25 2007 - 11:05:35 EST


On 4/25/07, Miguel Freitas <mfreitas@xxxxxxxxx> wrote:
hey, could it be that this -513 is actually -ERESTARTNOINTR?

if so, that would be a good explanation why it hangs.

- copy_process() checks for pending signals, then set retval =
-ERESTARTNOINTR and returns.

- handle_signal has the following code:

case -ERESTARTNOINTR:
regs->rax = regs->orig_rax;
regs->rip -= 2;
break;

looks like it will keep trying to reenter the syscall forever,
subtracting 2 from ip will restart the syscall. by some reason the
signal is never really handled.

Miguel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/