]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
Fix request timeout errors during calls to NSX controller
authorarmando-migliaccio <armamig@gmail.com>
Fri, 14 Feb 2014 18:59:17 +0000 (10:59 -0800)
committerThomas Goirand <thomas@goirand.fr>
Thu, 13 Mar 2014 07:20:21 +0000 (15:20 +0800)
commit8c229efddb05ab58105138b3ebd2b7d6b7551444
tree7f5c6e434219a7d9b5c167f46dea160c55d2da6f
parent2d227ddd0bebd4d9c8bdd2125a8645760142366e
Fix request timeout errors during calls to NSX controller

Sometimes two correlated exception traces are observed in
the server log for the Neutron Server backed by NSX:
RequestTimeout (The nsx request has timed out) and
OperationalError (Lock wait timeout exceeded). This is
generally described by Guru Salvatore Orlando as the,
and I quote, the "infamous eventlet-mysql deadlock".

This patch tries to address the issue by adding a
cooperative yield in the nsx client code (it’s a good idea
to call sleep(0) occasionally in any case) and also by
avoiding the unnecessary spawning of another Greenthread
within a call that is already executed in Greenthred
itself.

Closes-bug: #1267101
Related-bug: #1279497

Change-Id: I8e298468fb730f11a66fbd4211121ee7d3e2a548
neutron/plugins/nicira/api_client/request.py
neutron/plugins/nicira/api_client/request_eventlet.py