[RESOLVED] Re: [2.4.28-rc1] process stuck in release_task() call

Andrey J. Melnikoff (TEMHOTA)
2004-11-30T19:52:55Z

Hello Marcelo, Willy!
On Tue, Nov 16, 2004 at 08:06:42AM -0200, Marcelo Tosatti wrote next:

> On Fri, Nov 12, 2004 at 04:59:42PM +0300, Andrey J. Melnikoff (TEMHOTA) wrote:
> Andrey,
>
> I do not have much of a clue of what is going on here.
show_trace() has made a fool of me and I started to ask silly questions :)

> Can you try 2.4.27 please?
Ok, i'm tested 2.4.25 - same result. But this is complete userland problem.

There two problem:

First - show_trace() give incorrect traces. it strat unwind stack from
address in `tsk->thread.esp', but it should use address saved in `regs->ebp'
- this make more accuracy stack trace.

Second - strange libpthreads problem.
libpthreads always install own sa_restorer helper, and when first signal
arrived - call signal handler and if (when process in signal handler)
arrived new signal - lipthreads start play with rt_sigprocmask() and
rt_sigsuspend() syscalls inside own sa_restorer helper.
woops - infinity loop inside libpthreads.

--
Best regards, TEMHOTA-RIPN aka MJA13-RIPE
System Administrator. mailto:temnota@kmv.ru