Re: ERESTART_RESTARTBLOCK and ptrace()

From: Daniel Jacobowitz
Date: Thu Jun 11 2009 - 11:00:58 EST


On Wed, Jun 10, 2009 at 01:25:34PM +0300, Kirill A. Shutemov wrote:
> I've got bug in handling ERESTART_RESTARTBLOCK. Kernel version is 2.6.28.
>
> Steps to reproduce:
> 1. Attach using ptrace() to process while it's in a syscall which use
> ERESTART_RESTARTBLOCK
> on interrupt. The easiest way is to attach to process which is in nanosleep().
> 2. Run a syscall in context of the process like it does gdb.
> 3. Continue the process.
>
> Results:
> Syscall(nanosleep) return error code 516(ERESTART_RESTARTBLOCK). It's
> kernel's internal error
> code and should never appear at userspace.
>
> It seems ARM-related since I can't reproduce it on x86.

That's because GDB has code to do the right thing on x86. Consider
filing a GDB bug please.

--
Daniel Jacobowitz
CodeSourcery
--
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/