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)

Reply via email to