I had one more thought, does '/server/default/index' point to this code? If this is the case, then you have an infinite loop that consumes all available threads and deadlocks. Again, this is not a rocket-specific behavior.
On Feb 6, 10:08 am, Timbo <[email protected]> wrote: > If you've only got one thread running, then yes, this will deadlock on > any threaded server. > > Rocket was certainly not made to not allow lookups back to itself. > > Where are you putting this code? If by assigning to "response" are > you masking web2py's response object? > > I... > 1) downloaded a fresh copy of web2py > 2) created a fresh application > 3) set the index(): to: > def index(): > import urllib2 > url = 'http://127.0.0.1:8000/welcome/default/index' > resp = urllib2.urlopen(url).read() > return resp + "blah" > > I got the expected result. > > I need a little more information to debug this. > > -tim > > On Feb 6, 12:23 am, vihang <[email protected]> wrote: > > > > > > > > > Hi, > > > Code: > > > import urllib2 > > url = 'http://127.0.0.1/server/default/index' > > response = urllib2.urlopen(url) > > > Here 127.0.0.1 is the same web2py from which this code is being > > called. On doing so, the web2py hangs. I debugged the issue to Rocket, > > where it does not allocate a new thread to request (active_queue.get() > > does not return a new thread required to complete the response), as > > the current session is already using one. This is not a problem with > > other web servers. > > > Is this a bug or just the way Rocket server was made to behave? > > > Vihang

