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