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

Reply via email to