bug in RLIMIT_SIGPENDING

2007-04-28 Thread Miguel Freitas
summary: there seems to be a bug in RLIMIT_SIGPENDING accounting that can cause it to go negative. associated with this fact, the given process may get stuck forever trying to enter a 'clone' syscall. long version: - several people have experienced this problem of Xorg hanging forever (100% cpu

Re: Advice on debuging the fork syscall hanging forever

2007-04-25 Thread Miguel Freitas
On 4/25/07, Miguel Freitas <[EMAIL PROTECTED]> 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 h

Re: Advice on debuging the fork syscall hanging forever

2007-04-25 Thread Miguel Freitas
On 4/25/07, Miguel Freitas <[EMAIL PROTECTED]> wrote: (...) 0x2b2e77d6d5b6 : mov$0x38,%eax 0x2b2e77d6d5bb : syscall 0x2b2e77d6d5bd : cmp$0xf000,%rax (...) (gdb) info reg rax0xfdff -513 hey, could it be that this -

Advice on debuging the fork syscall hanging forever

2007-04-25 Thread Miguel Freitas
hi, making a long story short: i'm trying to debug a problem with the fork syscall as called from glibc's popen() function. it seems that a given process (in case Xorg) get stuck inside a syscall that never returns. while stuck it keeps using 100% of cpu. I can confirm the problem with kernel 2.