You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by il...@apache.org on 2020/01/09 12:24:13 UTC
[ignite] branch master updated: IGNITE-12506 Deadlock in WAL
archiver fixed - Fixes #7207.
This is an automated email from the ASF dual-hosted git repository.
ilyak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 5f0d4a7 IGNITE-12506 Deadlock in WAL archiver fixed - Fixes #7207.
5f0d4a7 is described below
commit 5f0d4a715bc27c3cc8e90474d9eb35373a56dec5
Author: ibessonov <be...@gmail.com>
AuthorDate: Thu Jan 9 15:20:26 2020 +0300
IGNITE-12506 Deadlock in WAL archiver fixed - Fixes #7207.
Signed-off-by: Ilya Kasnacheev <il...@gmail.com>
---
.../persistence/wal/FileWriteAheadLogManager.java | 34 +++++++++++-----------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
index a09de37..59736cb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
@@ -1913,31 +1913,31 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl
* @throws StorageException If exception occurred in the archiver thread.
*/
private long nextAbsoluteSegmentIndex() throws StorageException, IgniteInterruptedCheckedException {
- synchronized (this) {
- if (cleanErr != null)
- throw cleanErr;
+ if (cleanErr != null)
+ throw cleanErr;
- try {
- long nextIdx = segmentAware.nextAbsoluteSegmentIndex();
+ try {
+ long nextIdx = segmentAware.nextAbsoluteSegmentIndex();
+ synchronized (this) {
// Wait for formatter so that we do not open an empty file in DEFAULT mode.
while (nextIdx % dsCfg.getWalSegments() > formatted && cleanErr == null)
wait();
+ }
- if (cleanErr != null)
- throw cleanErr;
+ if (cleanErr != null)
+ throw cleanErr;
- return nextIdx;
- }
- catch (IgniteInterruptedCheckedException e) {
- if (cleanErr != null)
- throw cleanErr;
+ return nextIdx;
+ }
+ catch (IgniteInterruptedCheckedException e) {
+ if (cleanErr != null)
+ throw cleanErr;
- throw e;
- }
- catch (InterruptedException e) {
- throw new IgniteInterruptedCheckedException(e);
- }
+ throw e;
+ }
+ catch (InterruptedException e) {
+ throw new IgniteInterruptedCheckedException(e);
}
}