We have been using python embedded via the C API and have used Twisted for various things.  We have come across some strange behavior and I cannot figure out what is going on.


from twisted.internet import reactor
from twisted.web.client import downloadPage

...

def fetchRepo():
        global gameType, gameName, setupComplete, cp
        if (setupComplete):
                url = urlbase + "/" + gameType + "/" + gameName + "/repo.ini"
                print "url is : " + url
                d = downloadPage(url, "C:\\svntest\\gamerepo.ini")
                d.addCallback(downloadSuccess)
                d.addErrback(downloadFailure)              
                #cp.readfp(open("C:\\game-repo.ini"))
        else:
                print "urls not setup, throw errors etc."
...

This is an example of how we have been using downloadPage from twisted.web.client.  I have no problems getting the example to work when I make a simple app or write the code into the intrepeter.  But if I use it inside my app I get the user timeout below.

Unhandled error in Deferred:
Traceback (most recent call last):
Failure: twisted.internet.error.TimeoutError: User timeout caused connection failure.


Am I forgetting something trivial?  The reactor is running as we use PB for database pooling.  Can I not call downloadPage after a reactor is setup and connected?

James