diff --git a/ovsdbapp/backend/ovs_idl/transaction.py b/ovsdbapp/backend/ovs_idl/transaction.py index 0e3328da..632bef11 100644 --- a/ovsdbapp/backend/ovs_idl/transaction.py +++ b/ovsdbapp/backend/ovs_idl/transaction.py @@ -99,8 +99,15 @@ class Transaction(api.Transaction): # idl.run() again. So, call idl.run() here just in case. self.api.idl.run() continue - elif status == txn.ERROR: - msg = "OVSDB Error: %s" % txn.get_error() + elif status in (txn.ERROR, txn.NOT_LOCKED): + msg = 'OVSDB Error: ' + if status == txn.NOT_LOCKED: + msg += ("The transaction failed because the IDL has " + "been configured to require a database lock " + "but didn't get it yet or has already lost it") + else: + msg += txn.get_error() + if self.log_errors: LOG.error(msg) if self.check_error: @@ -114,6 +121,8 @@ class Transaction(api.Transaction): LOG.debug("Transaction caused no change") elif status == txn.SUCCESS: self.post_commit(txn) + else: + LOG.debug("Transaction returned an unknown status: %s", status) return [cmd.result for cmd in self.commands]