Some concurrent updates in different overlapping transactions cause low-level SQL exceptions that should be managed better.
The basic use case is:
- worker starts running fulltext update
- worker checks that the document exists
- main thread deleted the document
- main thread commits
- worker saves the new fulltext, generating an INSERT or UPDATE on a row in the fulltext table which has as id a foreign key to hierarchy, which has just been deleted
In this case we have an exception which can be trapped and analyzed by the worker framework to allow retries.
Another case is pure deadlocks, where two transactions modify tables in different orders with a save() in between. In this case a deadlock (detected and broken by the database) is inevitable, and should at least be reported as a ConcurrentUpdateException.
- is duplicated by
-
NXBT-523 Fix error when in Fulltext update work
- Resolved
-
NXP-11000 Oracle/PostgreSQL deadlock on create/delete document
- Resolved
- is required by
-
NXP-11004 Primary key violation on the fulltext table
- Resolved
-
NXP-11593 Fix timeouts while trying to lock VCS tables
- Resolved
-
NXP-12213 Fix random test failure on TestDummyVirusScanner
- Resolved
-
NXP-14072 Improve concurrent update detection on removal
- Resolved
-
NXP-14200 Retryable Work needs to detect concurrent updates at commit time
- Resolved
-
NXP-13125 Automatically retry async listeners if failing due to concurrency
- Resolved