[Stackless] recursion error on exiting tasklets

Richard Tew richard.m.tew at gmail.com
Sat Jul 4 00:18:45 CEST 2009


On Sat, Jul 4, 2009 at 1:24 AM, Paul Sijben<sijben at eemvalley.com> wrote:
> I am investigating a core dump that I sometimes have when stopping my
> complex multi-thread- multi-tasklet application. So I was running it in gdb
> an ran into this one. The backtrace looks to me like it runs into an
> infinite loop until it crashes.
>
> [Thread 0xb593db90 (LWP 23598) exited]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xb613eb90 (LWP 23597)]
> 0x080e7871 in impl_tasklet_kill (task=0xa36c6f4) at
> Stackless/module/taskletobject.c:950
> 950    {
> (gdb) bt
> #0  0x080e7871 in impl_tasklet_kill (task=0xa36c6f4) at
> Stackless/module/taskletobject.c:950
> #1  0x080e7164 in tasklet_clear (t=0xa36c6f4) at
> Stackless/module/taskletobject.c:946

Well, one point of confusion is that in my source code for
release26-maint, tasklet_clear is at line 101.  Although perhaps this
is some form of aggressive inlining.

But this looks like a conflict between the use of slp_get_frame(t) and
t->f.frame.  Which is correct, I do not know offhand.  I vaguely seem
to recall Kristjan Valur switching the use of one form for the other
at some point, maybe he has some insight?

It might be a while before I can look into this.

Cheers,
Richard.




More information about the Stackless mailing list