View Issue Details

IDProjectCategoryView StatusLast Update
0005819SymmetricDS ProImprovementpublic2023-05-02 19:54
Reporterpmarzullo Assigned Topmarzullo  
Prioritynormal 
Status closedResolutionfixed 
Product Version3.14.6 
Target Version3.14.7Fixed in Version3.14.7 
Summary0005819: OutgoingBatchService loadPendingBatches should use read uncommitted to minimize deadlocking possibilities
DescriptionDuring a pull with multiple queues defined, multiple synchronizations for the same node are attempted in parallel when loading pending batches.
Each thread queries the same set of outgoing batches partitioned by channel id or queue.
As each thread queries these records, shared or read locks are put on the records.
Eventually some of the threads will begin to update the outgoing batch status values to QY, SE, LD, and eventually OK or ER.
With multiple threads using read/shared locks and updates being made to the outgoing batch records, there is a possibility of a deadlock to occur, especially when there are many queues defined.

The load pending batches should be changed to use read uncommitted isolation, which means use the sqlTemplateDirty object instead of the sqlTemplate object when querying the pending batches.
Tagsextract

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.14 3106b741

2023-05-02 16:36:25

pmarzullo

Details Diff
0005819: OutgoingBatchService loadPendingBatches should use read
uncommitted to minimize deadlocking possibilities
Affected Issues
0005819
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/OutgoingBatchService.java Diff File

Issue History

Date Modified Username Field Change
2023-05-02 16:23 pmarzullo New Issue
2023-05-02 16:23 pmarzullo Status new => assigned
2023-05-02 16:23 pmarzullo Assigned To => pmarzullo
2023-05-02 16:23 pmarzullo Tag Attached: extract
2023-05-02 17:00 pmarzullo Changeset attached => SymmetricDS 3.14 3106b741
2023-05-02 19:54 pmarzullo Status assigned => resolved
2023-05-02 19:54 pmarzullo Resolution open => fixed
2023-05-02 19:54 pmarzullo Fixed in Version => 3.14.7
2023-05-12 19:49 admin Status resolved => closed