Comment 7 for bug 1741889

Revision history for this message
Terry Wilson (otherwiseguy) wrote :

https://review.openstack.org/#/c/537241/ should at least fix the runaway TRY_AGAIN issue. The situation:

If there is a database disconnection between the call to idl.run() and do_commit() calls in Connection.run(), then we call txn.commit_block() which calls txn.commit() which calls _session.send() which will return with an error and the transaction status is set to TRY_AGAIN. commit_block() will then immediately return that status and not call idl.run(). We will see the TRY_AGAIN and eventually call commit_block() again and since idl.run() has not been run, it hasn't run through the logic to reconnect to the database. After we time out in do_commit(), Connection.run() will eventually loop back around to calling idl.run() and reconnect to the database.