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 >> >