I cannot tell. The traceback is in pymysql so I would post there too.
Can you tell us more?

On Dec 25, 4:02 am, Kenneth Lundström <[email protected]>
wrote:
> Apache 2, wsgi, MySQL, Python 2.6.5, web2py 1.90.6
>
> After upgrading to the new DAL I occasionally get this error. Sometimes
> I have to reload the page 1-4 times to get it working.
>
> Should I upgrade to 1.91.4 or do you need some more info?
>
> Kenneth
>
> Error ticket for "init"
> Ticket ID
>
> xxx.xxx.xxx.xxx.2010-12-25.09-54-54.a54a74d6-70ac-4b4d-b943-5edbf0ac6d23
> Version
> web2py Version 1.90.6 (2010-12-20 17:36:54)
> Python Python 2.6.5: /usr/bin/python
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
> 11.
> 12.
> 13.
> 14.
> 15.
> 16.
> 17.
>
> Traceback (most recent call last):
> File "ggggggggggg/gluon/main.py", line 446, in wsgibase
> BaseAdapter.close_all_instances(BaseAdapter.commit)
> File "ggggggggggg/gluon/dal.py", line 271, in close_all_instances
> action(instance)
> File "ggggggggggg/gluon/dal.py", line 1027, in commit
> return self.connection.commit()
> File "ggggggggggg/gluon/contrib/pymysql/connections.py", line 549, in commit
> self.errorhandler(None, exc, value)
> File "ggggggggggg/gluon/contrib/pymysql/connections.py", line 545, in commit
> self._execute_command(COM_QUERY, "COMMIT")
> File "ggggggggggg/gluon/contrib/pymysql/connections.py", line 686, in
> _execute_command
> self._send_command(command, sql)
> File "ggggggggggg/gluon/contrib/pymysql/connections.py", line 681, in
> _send_command
> sock.send(send_data)
> error: [Errno 32] Broken pipe
>
> Error snapshot help Detailed traceback description
>
> <class 'socket.error'>([Errno 32] Broken pipe)
>
> inspect attributes
> Exception instance attributes
> __module__ 'socket'
> __getslice__ <method-wrapper '__getslice__' of error object>
> __str__ <method-wrapper '__str__' of error object>
> __getattribute__ <method-wrapper '__getattribute__' of error object>
> __dict__ {}
> __sizeof__ <built-in method __sizeof__ of error object>
> __weakref__ None
> __init__ <method-wrapper '__init__' of error object>
> __setattr__ <method-wrapper '__setattr__' of error object>
> __reduce_ex__ <built-in method __reduce_ex__ of error object>
> __new__ <built-in method __new__ of type object>
> errno 32
> __format__ <built-in method __format__ of error object>
> __class__ <class 'socket.error'>
> filename None
> __doc__ None
> __getitem__ <method-wrapper '__getitem__' of error object>
> __setstate__ <built-in method __setstate__ of error object>
> __reduce__ <built-in method __reduce__ of error object>
> args (32, 'Broken pipe')
> __subclasshook__ <built-in method __subclasshook__ of type object>
> __unicode__ <built-in method __unicode__ of error object>
> strerror 'Broken pipe'
> __delattr__ <method-wrapper '__delattr__' of error object>
> __repr__ <method-wrapper '__repr__' of error object>
> __hash__ <method-wrapper '__hash__' of error object>
> Frames
>
> *
>
> File ggggggggggg/gluon/main.py in wsgibase at line 446 code arguments
> variables
> Function argument list
>
> (environ={'DOCUMENT_ROOT': 'ggggggggggg/', 'GATEWAY_INTERFACE':
> 'CGI/1.1', 'HTTPS': '1', 'HTTP_ACCEPT':
> 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
> 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
> 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE':
> 'en-gb,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE':
> '__utma=12350507.1333234958.1291477692.1291477692...1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)',
> 'HTTP_HOST': '', ...}, responder=<built-in method start_response of
> mod_wsgi.Adapter object>)
> Code listing
>
> 441.
> 442.
> 443.
> 444.
> 445.
> 446.
>
> 447.
> 448.
> 449.
> 450.
>
> # ##################################################
>
> if response._custom_commit:
> response._custom_commit()
> else:
> BaseAdapter.close_all_instances(BaseAdapter.commit)
>
> # ##################################################
> # if session not in db try store session on filesystem
> # this must be done after trying to commit database!
>
> Variables
> BaseAdapter.close_all_instances <function close_all_instances>
> BaseAdapter.commit <unbound method BaseAdapter.commit>
> global BaseAdapter <class 'gluon.dal.BaseAdapter'>
> *
>
> File ggggggggggg/gluon/dal.py in close_all_instances at line 271 code
> arguments variables
> Function argument list
>
> (action=<unbound method BaseAdapter.commit>)
> Code listing
>
> 266.
> 267.
> 268.
> 269.
> 270.
> 271.
>
> 272.
> 273.
> 274.
> 275.
>
> """ to close cleanly databases in a multithreaded environment """
> if not hasattr(thread,'instances'):
> return
> while thread.instances:
> instance = thread.instances.pop()
> action(instance)
>
> # ## if you want pools, recycle this connection
> really = True
> if instance.pool_size:
> sql_locker.acquire()
>
> Variables
> action <unbound method BaseAdapter.commit>
> instance <gluon.dal.MySQLAdapter object>
> *
>
> File ggggggggggg/gluon/dal.py in commit at line 1027 code arguments
> variables
> Function argument list
>
> (self=<gluon.dal.MySQLAdapter object>)
> Code listing
>
> 1022.
> 1023.
> 1024.
> 1025.
> 1026.
> 1027.
>
> 1028.
> 1029.
> 1030.
> 1031.
>
> if query.second!=None:
> tables = tables.union(self.tables(query.second))
> return list(tables)
>
> def commit(self):
> return self.connection.commit()
>
> def rollback(self):
> return self.connection.rollback()
>
> Variables
> self <gluon.dal.MySQLAdapter object>
> self.connection <gluon.contrib.pymysql.connections.Connection object>
> self.connection.commit <bound method Connection.commit of
> <gluon.contrib.pymysql.connections.Connection object>>
> *
>
> File ggggggggggg/gluon/contrib/pymysql/connections.py in commit at line
> 549 code arguments variables
> Function argument list
>
> (self=<gluon.contrib.pymysql.connections.Connection object>)
> Code listing
>
> 544.
> 545.
> 546.
> 547.
> 548.
> 549.
>
> 550.
> 551.
> 552.
> 553.
>
> try:
> self._execute_command(COM_QUERY, "COMMIT")
> self.read_packet()
> except:
> exc,value,tb = sys.exc_info()
> self.errorhandler(None, exc, value)
>
> def rollback(self):
> ''' Roll back the current transaction '''
> try:
>
> Variables
> builtinNone None
> self <gluon.contrib.pymysql.connections.Connection object>
> exc <class 'socket.error'>
> value error(32, 'Broken pipe')
> self.errorhandler <bound method Connection.defaulterrorhandler of
> ...n.contrib.pymysql.connections.Connection object>>
> *
>
> File ggggggggggg/gluon/contrib/pymysql/connections.py in commit at line
> 545 code arguments variables
> Function argument list
>
> (self=<gluon.contrib.pymysql.connections.Connection object>)
> Code listing
>
> 540.
> 541.
> 542.
> 543.
> 544.
> 545.
>
> 546.
> 547.
> 548.
> 549.
>
> self.errorhandler(None, exc, value)
>
> def commit(self):
> ''' Commit changes to stable storage '''
> try:
> self._execute_command(COM_QUERY, "COMMIT")
>
> self.read_packet()
> except:
> exc,value,tb = sys.exc_info()
> self.errorhandler(None, exc, value)
>
> Variables
> self <gluon.contrib.pymysql.connections.Connection object>
> global COM_QUERY '\x03'
> self._execute_command <bound method Connection._execute_command of
> <gluon.contrib.pymysql.connections.Connection object>>
> *
>
> File ggggggggggg/gluon/contrib/pymysql/connections.py in
> _execute_command at line 686 code arguments variables
> Function argument list
>
> (self=<gluon.contrib.pymysql.connections.Connection object>,
> command='\x03', sql='COMMIT')
> Code listing
>
> 681.
> 682.
> 683.
> 684.
> 685.
> 686.
>
> 687.
> 688.
> 689.
> 690.
>
> sock.send(send_data)
>
> if DEBUG: dump_packet(send_data)
>
> def _execute_command(self, command, sql):
> self._send_command(command, sql)
>
> def _request_authentication(self):
> sock = self.socket
> self._send_authentication()
>
> Variables
> self <gluon.contrib.pymysql.connections.Connection object>
> command '\x03'
> self._send_command <bound method Connection._send_command of
> <gluon.contrib.pymysql.connections.Connection object>>
> sql 'COMMIT'
> *
>
> File ggggggggggg/gluon/contrib/pymysql/connections.py in _send_command
> at line 681 code arguments variables
> Function argument list
>
> (self=<gluon.contrib.pymysql.connections.Connection object>,
> command='\x03', sql='COMMIT')
> Code listing
>
> 676.
> 677.
> 678.
> 679.
> 680.
> 681.
>
> 682.
> 683.
> 684.
> 685.
>
> def _send_command(self, command, sql):
> send_data = struct.pack('<i', len(sql) + 1) + command + sql
>
> sock = self.socket
> sock.send(send_data)
>
> if DEBUG: dump_packet(send_data)
>
> def _execute_command(self, command, sql):
>
> Variables
> send_data '\x07\x00\x00\x00\x03COMMIT'
> sock.send <built-in method send of _socket.socket object>
> sock <socket._socketobject object>
>
> Context
>
> locals request session response
> locals
> command :
> '\x03'
> self :
> <gluon.contrib.pymysql.connections.Connection object>
> send_data :
> '\x07\x00\x00\x00\x03COMMIT'
> sock :
> <socket._socketobject object>
> sql :
> 'COMMIT'
> request
> ajax :
> False
> application :
> 'init'
> args :
> []
> body :
> <cStringIO.StringO object>
> cid :
> None
> client :
> 'xxx.xxx.xxx.xxx'
> controller :
> 'default'
> cookies :
> <SimpleCookie:
> __utma='12350507.1333234958.12914...1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)'>
> env :
> <Storage {'mod_wsgi_listener_host': '', 'script_...data.fi/',
> 'mod_wsgi_process_group': 'exp-kals'}>
> extension :
> 'html'
> folder :
> 'ggggggggggg/applications/init/'
> function :
> 'index'
> get_vars :
> <Storage {}>
> now :
> datetime.datetime(2010, 12, 25, 9, 54, 52, 861899)
> post_vars :
> <Storage {}>
> raw_args :
> None
> url :
> <gluon.html.XML object>
> vars :
> <Storage {}>
> wsgi :
> <Storage {'start_response': <function <lambda> a...p,deflate',
> 'PATH_INFO': '/init/default/index'}}>
> session
> auth :
> None
> balance :
> 0
> cart :
> {}
> language :
> 'fi'
> language_changed :
> False
> money_left :
> 0
> money_to_use :
> 0
> response
> body :
> <cStringIO.StringO object>
> cookies :
> <SimpleCookie:
> session_id_init='xxx.xxx.xxx.xxx-469ece8e-c364-48c8-b36f-c6515c0d45a3'>
> files :
> [<gluon.html.XML object>, <gluon.html.XML object>, <gluon.html.XML object>]
> flash :
> ''
> headers :
> <Storage {'Expires': 'Sat, 25 Dec 2010 07:54:52 ...he, must-revalidate,
> post-check=0, pre-check=0'}>
> menu :
> []
> meta :
> <Storage {}>
> postprocessing :
> []
> session_filename :
> 'ggggggggggg/applications/ini....-469ece8e-c364-48c8-b36f-c6515c0d45a3'
> session_id :
> 'xxx.xxx.xxx.xxx-469ece8e-c364-48c8-b36f-c6515c0d45a3'
> session_id_name :
> 'session_id_init'
> session_new :
> True
> status :
> 200
> subtitle :
> <lazyT 'Overview'>
> title :
> <lazyT 'Your account'>
> view :
> 'default/index.html'
> In file: Framework
>
> 1.

Reply via email to