[Stackless] advice on debugging stackless

Andrew Francis andrewfr_ice at yahoo.com
Sun Feb 17 15:41:57 CET 2008


Hi Simon:

> I've a heavily event based system going on, so I
> suspect these problems are caused by circular
events.

I have been developing a WS-BPEL processor part-time
for the past three years(!!!). My processor has
network , timer, and scheduling events.

For circular events, my tactics are 

1) Deadlock avoidance - draw dependency graphs.

2) Keep track of the number of tasklets running and
blocked.

if you have a construct like

while (stackless.getruncount() > 1):
    stackless.schedule()

often what happens if you have deadlock is that this
loop will unexpectedly exit.

(if your programme is complex, you can have localised
deadlock)

what I do is keep track of the channels and the
tasklets and have a dump function, using
channel.__reduce__ to take a look at the status.

3) Simplify design - i.e, for stuff like semaphores,
use a simple channel and a counter, instead of say,
multiple channels.


On a deadlock situation, read the following thread.

http://www.stackless.com/pipermail/stackless/2005-December/thread.html

Cheers,
Andrew




      ____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs




More information about the Stackless mailing list