View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004472 | SymmetricDS | Bug | public | 2020-07-09 16:14 | 2020-11-09 15:14 |
Reporter | pmarzullo | Assigned To | pmarzullo | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.11.5 | ||||
Target Version | 3.10.13 | Fixed in Version | 3.10.13 | ||
Summary | 0004472: Staging Purge stops extracts from continuing on when running on the same instance | ||||
Description | When Staging Purge is running, a JVM lock is made on the StagingManager object, because the clean() method is a synchronized method. Also, before the cleaning is started, the resourcePathsCache object is cleared. When an extract of a batch is completed writing to the .CREATE file, the extractor then attempts to find the staged resource so that the state can be changed to the DONE state (.DONE extension). During the StagingManager.find() method, the resourcePathsCache object is looked at to find the cached path to the staged resource. Because the StagingManager purge has already cleared out the resourcePathsCache object, the find() method does not find the cached object, then must go into a synchronized block of code that is synchronized on the "this" object, which is the same object that the synchronized method already has a lock on. So the find() method must wait until the StagingManager.clean() method is complete before continuing on with creating the staged resource to return to the caller, which is the data extractor. So the data extractor can not continue on with extracting while the StagingManager.clean() is running. | ||||
Steps To Reproduce | 1. Create an initial load for a node. 2. Watch the creation of the batch files. 3. Run the StagingManager job. 4. Notice that the creation of the batch files is paused. | ||||
Tags | extract, performance, purge | ||||
related to | 0004545 | closed | elong | Data Extractor gets "java.lang.IllegalStateException: There is no content to read" from staging |
related to | 0004546 | closed | elong | Data Extractor gets "java.lang.IllegalStateException: There is no content to read" from staging |
related to | 0004547 | closed | elong | Data Extractor gets "java.lang.IllegalStateException: There is no content to read" from staging |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-07-09 16:14 | pmarzullo | New Issue | |
2020-07-09 16:14 | pmarzullo | Status | new => assigned |
2020-07-09 16:14 | pmarzullo | Assigned To | => pmarzullo |
2020-07-09 16:14 | pmarzullo | Tag Attached: extract | |
2020-07-09 16:14 | pmarzullo | Tag Attached: purge | |
2020-07-09 19:16 | pmarzullo | Target Version | => 3.10.13 |
2020-07-09 19:16 | pmarzullo | Note Added: 0001731 | |
2020-07-09 19:17 | pmarzullo | Status | assigned => resolved |
2020-07-09 19:17 | pmarzullo | Resolution | open => fixed |
2020-07-09 19:17 | pmarzullo | Fixed in Version | => 3.10.13 |
2020-07-09 19:17 | pmarzullo | Note Added: 0001732 | |
2020-07-09 20:00 | Changeset attached | => SymmetricDS 3.10 fe0ded90 | |
2020-07-10 14:07 | pmarzullo | Tag Attached: performance | |
2020-09-14 19:52 | elong | Relationship added | related to 0004545 |
2020-09-14 19:58 | elong | Relationship added | related to 0004546 |
2020-09-14 19:59 | elong | Relationship added | related to 0004547 |
2020-11-09 15:14 | admin | Status | resolved => closed |