Yeah i love screen coz i can search back easily and interactively debug infos.

Yes its doing concurrent , the problem happen again yesterday but just
for once , and gone away again.

Theres 2 Grid (jqGrid) in one page , they request 2 json response from
that controller but from different function at Once.

On 9/28/11, Michele Comitini <michele.comit...@gmail.com> wrote:
> No way is not bad practice IMHO screen is a great tool.
> So we can exclude the problem of stdout buffer full.
> Seems something low level.
>
> Is the client doing concurrent queries?
>
> mic
>
>
>
> 2011/9/27 Phyo Arkar <phyo.arkarl...@gmail.com>:
>> 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
>>>>>
>>>>
>>>
>>
>

Reply via email to