[Stackless] Stackless 2.6.2/Win crash with very short script

Kristján Valur Jónsson kristjan at ccpgames.com
Thu Aug 13 22:51:23 CEST 2009


I don't know.  I've uncovered some nastyness in the process.
Soft switching is fragile with regards to channel refcounting and the fix I have in mind is very simple.  But having it in action actually showed some other strange behavior that I"m looking at.
K

> -----Original Message-----
> From: Richard Tew [mailto:richard.m.tew at gmail.com]
> Sent: 13. ágúst 2009 20:32
> To: Kristján Valur Jónsson
> Cc: Stefan Reich; stackless at stackless.com
> Subject: Re: [Stackless] Stackless 2.6.2/Win crash with very short
> script
> 
> 2009/8/14 Kristján Valur Jónsson <kristjan at ccpgames.com>:
> > I've more or less given up on this.
> > The problem  The problem is that the engine is in a fragile state
> until a soft-switch has completed.  This is especially true for a hard-
> switch wrapped in a soft switch, i.e. one where a "jump_soft_to_hard
> has been put on the frame.  Until that jump is actually performed, one
> cannot switch away from that tasklet.
> >
> > In effect it means that if a stackless (or semi stackless with
> jump_soft_to_hard) jump has been set up but not done, we cannot call
> switch tasks.  And task switching occurs if a reference goes away,
> which is possible through multiple means in the meantime.
> >
> > Maybe the best way is to put channels, wich are in such a state as to
> require waking up a tasklet to die, in a special garbage bin, that is
> emptied in a safe place on a regular basis.  I'll try that next.
> 
> My worry about the potential fixes you have described for this bug,
> are that they are top heavy for what they are addressing.  Let's be
> honest here, what we have is a case that crashes that no-one would
> ever do in production.  Making larger fixes than the problem itself,
> well, I wonder if we are incurring additional codebase complexity for
> little benefit.
> 
> I say let this one sit.
> 
> Cheers,
> Richard.





More information about the Stackless mailing list