I have been getting Broken Pipe issues with pymysql:
Traceback (most recent call last):
File "/home/web2py/gluon/main.py", line 470, in wsgibase
BaseAdapter.close_all_instances('commit')
File "/home/web2py/gluon/dal.py", line 272, in close_all_instances
getattr(instance,action)()
File "/home/web2py/gluon/dal.py", line 1036, in commit
return self.connection.commit()
File "/home/web2py/gluon/contrib/pymysql/connections.py", line 562, in
commit
self.errorhandler(None, exc, value)
File "/home/web2py/gluon/contrib/pymysql/connections.py", line 182, in
defaulterrorhandler
raise Error(errorclass, errorvalue)
Error: (<class 'socket.error'>, error(32, 'Broken pipe'))
Everything is fine if I refresh the page, which I guess means that we
establish a fresh MySQL connection rather than trying to reuse an old one
(This is a quiet site)....however tracebacks are horrible for users to face,
so this really needs fixing.
I guess this has been happening ever since the move to pymysql, but I've not
had production sites using it & generally my development is done on sqlite,
so I hadn't noticed.
This is with pool_size = 30 & a default MySQL Debian Squeeze install.
I see someone else has experienced it occasionally:
https://groups.google.com/forum/?pli=1#!searchin/web2py/Broken$20pipe$20pymysql/web2py/W8xs1Vx38jo/Hz-BeQyMhfgJ
I suspect that this would best be fixed in pymysql, but we should at least
be catching in web2py anyway.
I'm tempted by the same request as this user:
https://groups.google.com/d/msg/web2py/GXyyuBdrtyg/up0eZ1nkpQYJ
Portability of pymysql is kinda nice, but it's really no big deal to install
the proven MySQLdb.
Many thanks,
Fran.