I would begin to remove possible environmental causes... ;)
Other questions:
4) Do you run web2py.py  attached to a tty?
5) Do you redirect standard output from web2py or leave it on the tty?

The questions are because I see some print statements that could hang
IO on a thread if the web2py process is not properly detached from the
terminal.
If that is the case use nohup and try to see what happens.

wrong:
$ python web2py.py <options> &

right:
$ nohup python web2py.py <options> &

If nothing changes... well... other questions!


mic

2011/9/27 Phyo Arkar <phyo.arkarl...@gmail.com>:
> It cannot be reproduced ..
>
> On 9/27/11, Phyo Arkar <phyo.arkarl...@gmail.com> wrote:
>> its not the same warning notices , client recieves 0 byte and timed
>> out at brower side looking at firebug.
>>
>> On 9/27/11, Massimo Di Pierro <massimo.dipie...@gmail.com> wrote:
>>> Other than the error, do you see wrong behavior from the browser?
>>> I do not not believe that there is anything wrong as we ship the
>>> "official" rocket. We are just printing an exception that before was
>>> being ignored.
>>>
>>> Massimo
>>>
>>> On Sep 26, 2:47 pm, Phyo Arkar <phyo.arkarl...@gmail.com> wrote:
>>>> Hello Web2py.
>>>>
>>>>  Rocket server was very  well stable for me until today , after 2
>>>> weeks of update and while testing usual Json output which was never
>>>> changed and working fine fore 8 months.
>>>>
>>>> This happens!
>>>>
>>>> ERROR:Rocket.Errors.Thread-6:Unhandled Error when serving connection:
>>>> Traceback (most recent call last):
>>>>
>>>>   File "/root/web2py/gluon/rocket.py", line 1064, in run
>>>>     self.run_app(conn)
>>>>
>>>>   File "/root/web2py/gluon/rocket.py", line 1552, in run_app
>>>>     self.write(data, sections)
>>>>
>>>>   File "/root/web2py/gluon/rocket.py", line 1472, in write
>>>>     self.send_headers(data, sections)
>>>>
>>>>   File "/root/web2py/gluon/rocket.py", line 1456, in send_headers
>>>>     self.conn.sendall(b(header_data))
>>>>
>>>>   File "/usr/lib/python2.7/socket.py", line 224, in meth
>>>>     return getattr(self._sock,name)(*args)
>>>>
>>>> error: [Errno 32] Broken pipe
>>>>
>>>> and it is on and off randomly.
>>>>
>>>> Why?
>>>>
>>>> heres my Json Controller :
>>>>
>>>> def rows():
>>>>
>>>>         if REQUEST.vars.db_name:
>>>>                 casesdb = DAL( 'mysql://root@localhost/' +
>>>> REQUEST.vars.db_name )
>>>>                 casesdb.define_table( 'email_data', migrate = False,
>>>> *email_halfschema )
>>>>                 casesdb.define_table( 'loosefile_data', migrate = False,
>>>> *file_halfschema )
>>>>                 casesdb.define_table( 'attach_data', migrate = False,
>>>> *file_halfschema )
>>>>         elif SESSION.db_name:
>>>>                 casesdb = DAL( 'mysql://root@localhost/' +
>>>> SESSION.db_name
>>>> )
>>>>                 casesdb.define_table( 'email_data', migrate = False,
>>>> *email_halfschema )
>>>>                 casesdb.define_table( 'loosefile_data', migrate = False,
>>>> *file_halfschema )
>>>>                 casesdb.define_table( 'attach_data', migrate = False,
>>>> *file_halfschema )
>>>>
>>>>         fields = ['id', 'filePath', 'fileName', 'cus', 'sentto',\
>>>>                          'emailFrom', 'subject', 'cc', 'bcc',
>>>> 'extracted',
>>>> 'hdrs',\
>>>>
>>>>
>>>> 'DateTime','OriginalDateTime','TimeZone','reply_to',"master",'duplicated','
>>>> MD5Hash','msgID','fqdn']
>>>>         rows = []
>>>>         page = int( request.vars.page )
>>>>
>>>>         max = request.vars.totalrows
>>>>         if max:
>>>>                 pagesize = int( max )
>>>>         else:
>>>>                 pagesize = int( request.vars.rows )
>>>>         print pagesize
>>>>         limitby = ( page * pagesize - pagesize, page * pagesize )
>>>> #       limitby = ( 1, 25 )
>>>>         print "str( page * pagesize - pagesize )" + str( page * pagesize
>>>> -
>>>> pagesize ) + " limitby " + str( page * pagesize )
>>>> #       orderby = request.vars.sidx
>>>>         orderby = casesdb.email_data[request.vars.sidx]
>>>>         print orderby
>>>>         if request.vars.sord == 'desc':
>>>>                 orderby = ~orderby
>>>>
>>>>         query = casesdb.email_data.id > 0
>>>>
>>>>         for r in casesdb( query ).select( orderby = orderby, limitby =
>>>> limitby ):
>>>>                 vals = []
>>>>                 for f in fields:
>>>>                         if f == 'extracted':
>>>>                                 vals.append( _sentisize(r[f]) )
>>>>                         else :
>>>>                                 vals.append( r[f] )
>>>>                 rows.append( dict( id = r.id, cell = vals ) )
>>>>
>>>>         total = casesdb( query ).count()
>>>>         print total
>>>>         if total % pagesize >0:
>>>>                 pages = int( total / pagesize ) +1
>>>>         else:
>>>>                 pages = int( total / pagesize )
>>>>         #if total % pagesize == 0: pages -= 1
>>>>         data = dict( total = pages, page = page, rows = rows )
>>>>         return data
>>
>

Reply via email to