Re: Bug: retry of clone() on Alpha can result in zeroed process thread pointer

2014-07-30 Thread Richard Henderson
Ok, I think I've actually found it this time. It's here: > 281 childregs->r20 = 1; /* OSF/1 has some strange fork() > semantics. */ > 282 regs->r20 = 0; We need to delay this r20 silliness until after restarts or something. Or just kill it -- it's not like glibc uses t

Re: Bug: retry of clone() on Alpha can result in zeroed process thread pointer

2014-07-24 Thread Michael Cree
On Thu, Jul 24, 2014 at 08:19:52AM -1000, Richard Henderson wrote: > On 07/22/2014 10:52 PM, Michael Cree wrote: > > Running strace on nptl/tst-eintr3 reveals that the clone() syscall > > is retried by the kernel if an ERESTARTNOINTR error occurs. At > > $syscall_error in arch/alpha/kernel/entry.S

Re: Bug: retry of clone() on Alpha can result in zeroed process thread pointer

2014-07-24 Thread Richard Henderson
On 07/22/2014 10:52 PM, Michael Cree wrote: > Running strace on nptl/tst-eintr3 reveals that the clone() syscall > is retried by the kernel if an ERESTARTNOINTR error occurs. At > $syscall_error in arch/alpha/kernel/entry.S the kernel handles the > error and in doing that it writes to 72(sp) which

Bug: retry of clone() on Alpha can result in zeroed process thread pointer

2014-07-23 Thread Michael Cree
I am seeing a bug in clone() on the Alpha architecture. Reported to Debian as https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755397 The test suite of glibc sometimes fails in the nptl/tst-eintr3 test with a segmentation fault. I have tracked it down to the thread pointer returned by the rduni