This is mostly aimed at Jason and Dirk,

I've been working on a new server for freevo 1 and as part of that I've
been testing what happens when a previously connected rpc channel is
closed just before an RPC call and I think I've found a bug with the
current svn tip.

Here's the sequence of events:

1. Start server process
2. Start client process
3. Client process connects to server and excutes RPC calls successfull.
4. Server process dies/is killed
5. Client process attempts an RPC call. Hangs (by hangs I mean the
inprogress object never finishes either via an exception or successful
return)

I believe I've tracked this done to the _monitor() coroutine in Client,
specifically the line:

                yield self.signals.subset('closed').any()

The inprogress object yielded by this call doesn't seem to be finished
even though the Channel's closed signal is fired.

My cludge to solve this was to use another inprogress object which I yield
instead of the signals.any(). I then call finish on this when the Channel
fires the 'closed' signal. I don't expect this is a proper fix but I don't
understand the rest of the async code to work out where to begin.

Any thoughts?

Cheers

Adam


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to