@Niphlod:
I've simplified my error handler as far as this :
No models, controller has 2 lines :
def index():
return dict()
The result is still the same : web2py stalling forever, no page displayed.
@Derek:
I'm developping on a MacOSX computer but my server is hosted on Heroku
(probably some kind of Linux distribution) : the problem is the same on
both environments.
I can't make my server run locally on any other server than rocket right
now (and never had to so far). I'll have to look into that if the problem
persists.
@Massimo:
I'm using this version:
2.9.11-stable+timestamp.2014.09.15.23.35.11
(Running on Rocket 1.2.6, Python 2.7.9)
The controller in question is just some error handler I made that
automatically (and synchroneously) sends tickets as e-mails to
administrators. This is due to Heroku having an ephemeral filesystem : you
can't rely on tickets being stored on the filesystem for any length of time.
@cem:
The controller I built was based on this slice
<http://www.web2pyslices.com/slice/show/1529/custom-error-routing>, so it
has the 2 lines that should prevent an infinite error loop :
* 1. if code is not None and request_url != request.url: # Make sure error
url is not current url to avoid infinite loop.2. response.status =
int(code) # Assign the error status code to the current response. (Must be
integer to work.)*
On Sunday, January 4, 2015 at 6:38:18 PM UTC+1, Niphlod wrote:
>
> the point of routes_onerror is EXACTLY to "intercept" the error and
> somewhat process it to display a nicer page to the end-user. I'd guess at
> this point that your controller handling the error has some bugs in it:
> would you care to trim it to the bare minimum to see if the error is in
> handling the "original" error ?
>
> On Sunday, January 4, 2015 12:56:54 AM UTC+1, Louis Amon wrote:
>>
>> I've tested the native error handler (working fine) versus my custom
>> error handler (generating HTTP 400 error + web2py stuck) :
>>
>> The main difference between the two is that the native error handler
>> doesn't generate an additional request while routes_onerror seems to
>> generate an additional request that points to my error handler.
>>
>> This second request goes through *copystream_progress* just fine, then
>> calls *copystream* (at line 125 in globals.py).
>>
>> In *copystream*, it gets stuck at line 465 in fileutils.py :
>>
>> data = src.read(size)
>>
>> This call to 'read' eventually times out.
>>
>> I've tried catching the error like this :
>>
>> try:
>> data = src.read(size)
>> except Exception as e:
>> print type(e), e
>>
>> All it ever prints (after 10 seconds) is :
>>
>> <class 'socket.timeout'> timed out
>>
>>
>> How can I further investigate this matter ?
>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.