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 <vihan...@gmail.com> 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