zodb / relstorage

A backend for ZODB that stores pickles in a relational database.
Other
55 stars 46 forks source link

MySQLdb+gevent blocking event loop #385

Closed jamadden closed 4 years ago

jamadden commented 4 years ago

Similar to #382, there are cases where a certain order of operations can lead the gevent driver to block the event loop for an arbitrary period of time waiting on results. If some other greenlet has the resources that it's blocking on, the result is a deadlock.

I have a test case that can reproduce this. The blocking function is Connection.next_result which is used when calling stored procedures.