Есть сервер, написанный на python + gevent. Работа с базой данных ведется через
github.com/esnme/ultramysql
Вроде все работает отлично, но через часа 4 (когда как) сервер падает с ошибками:
Traceback (most recent call last):
File "build/bdist.freebsd-8.1-RELEASE-amd64/egg/gevent/greenlet.py", line 328, in run
result = self._run(*self.args, **self.kwargs)
File "/usr/home/admin/server/server/connect.py", line 58, in listener
self.dispatch(data)
File "/usr/home/admin/server/server/connect.py", line 108, in dispatch
self.auth(data['params'])
File "/usr/home/admin/server/server/connect.py", line 156, in auth
result = self.server.db.query("SELECT id, nickname FROM user WHERE id = %s", (self.userId, ))
File "build/bdist.freebsd-8.1-RELEASE-amd64/egg/gevent/socket.py", line 435, in send
return sock.send(data, flags)
error: [Errno 32] Broken pipe
<Greenlet at 0x802ae5c30: <bound method Connect.listener of <server.connect.Connect object at 0x8028ef490>>> failed with error
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\gevent\greenlet.py", line 390, in run
result = self._run(*self.args, **self.kwargs)
File "D:\seabattle\server\server\connect.py", line 58, in listener
self.dispatch(data)
File "D:\seabattle\server\server\connect.py", line 108, in dispatch
self.auth(data['params'])
File "D:\seabattle\server\server\connect.py", line 156, in auth
result = self.server.db.query("SELECT id, nickname FROM user WHERE id = %s", (self.userId, ))
Error: (0, 'Concurrent access in query method')
<Greenlet at 0x2c6c768L: <bound method Connect.listener of <server.connect.Connect object at 0x0000000002C81198>>> failed with Error
Грешу на драйвер работы с mysql, но причину понять не могу. Вроде рвется коннект, но почему? Наведите на здравую мысль, если не сложно? Или посоветуйте драйвер для работы mysql с gevent.