On 6/11/15 9:32 PM, Eugene Nikanorov wrote:
Hi neutrons,

I'd like to draw your attention to an issue discovered by rally gate job:
http://logs.openstack.org/96/190796/4/check/gate-rally-dsvm-neutron-rally/7a18e43/logs/screen-q-svc.txt.gz?level=TRACE

I don't have bandwidth to take a deep look at it, but first impression is that it is some issue with nested transaction support either on sqlalchemy or pymysql side. Also, besides errors with nested transactions, there are a lot of Lock wait timeouts.

I think it makes sense to start with reverting the patch that moves to pymysql.
My immediate reaction is that this is perhaps a concurrency-related issue; because PyMySQL is pure python and allows for full blown eventlet monkeypatching, I wonder if somehow the same PyMySQL connection is being used in multiple contexts. E.g. one greenlet starts up a savepoint, using identifier "_3" which is based on a counter that is local to the SQLAlchemy Connection, but then another greenlet shares that PyMySQL connection somehow with another SQLAlchemy Connection that uses the same identifier.

I'm not saying this is a bug in PyMySQL or Eventlet necessarily, it could be a bug in Neutron itself, since none of this code has ever been used with a true context-switching greenlet environment at the database connection level.






Thanks,
Eugene.



__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to