[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