commit e5ded80fe579d967642ee9173874ba924395d3af
Author: Terry Wilson <email address hidden>
Date: Wed Jan 24 03:41:13 2018 +0000
Ensure idl.run() called on TRY_AGAIN
If the DB connection drops after Connection.run() calls idl.run()
but before Transaction.do_commit(), then it is possible for
idl.commit() to return TRY_AGAIN due to the failure of session.send().
This prevents commit_block() from running idl.run() which would
actually trigger the DB reconnect, causing each successive call to
commit_block() to fail in the same way until we stop trying again
due to timeout and Connection.run() calls idl.run() again.
For now, we can just ensure that idl.run() is called when we get a
TRY_AGAIN. It might be worth it to refactor this a bit to not even
use commit_block().
Change-Id: I77402bde3fc4d45c770b9f48882870cfc91d719d
Closes-Bug: #1741889
(cherry picked from commit 1810faecc9ad2345f3e2f9185ac64194c5a0d711)
Reviewed: https:/ /review. openstack. org/538942 /git.openstack. org/cgit/ openstack/ ovsdbapp/ commit/ ?id=e5ded80fe57 9d967642ee91738 74ba924395d3af
Committed: https:/
Submitter: Zuul
Branch: stable/pike
commit e5ded80fe579d96 7642ee9173874ba 924395d3af
Author: Terry Wilson <email address hidden>
Date: Wed Jan 24 03:41:13 2018 +0000
Ensure idl.run() called on TRY_AGAIN
If the DB connection drops after Connection.run() calls idl.run() do_commit( ), then it is possible for
but before Transaction.
idl.commit() to return TRY_AGAIN due to the failure of session.send().
This prevents commit_block() from running idl.run() which would
actually trigger the DB reconnect, causing each successive call to
commit_block() to fail in the same way until we stop trying again
due to timeout and Connection.run() calls idl.run() again.
For now, we can just ensure that idl.run() is called when we get a
TRY_AGAIN. It might be worth it to refactor this a bit to not even
use commit_block().
Change-Id: I77402bde3fc4d4 5c770b9f4888287 0cfc91d719d 5f3e2f9185ac641 94c5a0d711)
Closes-Bug: #1741889
(cherry picked from commit 1810faecc9ad234