Urmi Mustafi created GOBBLIN-2096:
-------------------------------------
Summary: Try Transient SQL Exception for MALA
Key: GOBBLIN-2096
URL: https://issues.apache.org/jira/browse/GOBBLIN-2096
Project: Apache Gobblin
Issue Type: Bug
Components: gobblin-service
Reporter: Urmi Mustafi
Assignee: Abhishek Tiwari
We're seeing a MySQLTransactionRollbackException: Deadlock found when trying to
get lock when calling MysqlMultiActiveLeaseArbiter. attemptLeaseIfNewRow() in
the rare case when two hosts check the lease arbiter table at the same time,
see there's no entry matching the current primary key and try to insert it at
the exact same time (both wait for lock on the same row). Normally, there's
slight discrepancy that results in an IntegrityConstraintViolationException if
one insert succeeds before the other OR one finishes the write early and the
other sees the entry when reading the getResult of the arbiter table. This PR
adds retries with exponential backoff for transient SQL exceptions to the
insert statement. Note, it's not needed for other cases when the INSERT/UPDATE
statements are conditional on a read value.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)