Web2py is ran inside screen. coz my app is not production-stable yet and want to debug. I print out some debug messages and can track back inside screen (i know i know , its bad practice :D)
may be coz of that? On 9/27/11, Michele Comitini <michele.comit...@gmail.com> wrote: > 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 >>> >> >