This is an automated email from the ASF dual-hosted git repository.
agura 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 8d7363d IGNITE-12486 Index calculation in
FileWriteAheadLogManager#rollOver fixed.
8d7363d is described below
commit 8d7363da3c03993c8a50884788595674a65d6e7f
Author: ibessonov <[email protected]>
AuthorDate: Mon Dec 30 18:57:05 2019 +0300
IGNITE-12486 Index calculation in FileWriteAheadLogManager#rollOver fixed.
Signed-off-by: Andrey Gura <[email protected]>
---
.../processors/cache/persistence/wal/AbstractWalRecordsIterator.java | 5 ++++-
.../processors/cache/persistence/wal/FileWriteAheadLogManager.java | 2 +-
.../cache/persistence/wal/filehandle/FileWriteHandleImpl.java | 2 +-
.../cache/persistence/wal/filehandle/FsyncFileWriteHandle.java | 2 +-
.../processors/cache/persistence/db/wal/WalCompactionTest.java | 2 +-
5 files changed, 8 insertions(+), 5 deletions(-)
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
index 0392d7e..ce9b992 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
@@ -275,7 +275,10 @@ public abstract class AbstractWalRecordsIterator
if (e instanceof WalSegmentTailReachedException) {
throw new WalSegmentTailReachedException(
"WAL segment tail reached. [idx=" + hnd.idx() +
- ", isWorkDir=" + hnd.workDir() + ", serVer=" +
hnd.ser() + "]", e);
+ ", isWorkDir=" + hnd.workDir() + ", serVer=" +
hnd.ser() +
+ ", actualFilePtr=" + actualFilePtr + ']',
+ e
+ );
}
if (!(e instanceof SegmentEofException) && !(e instanceof
EOFException)) {
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 c22ed28..a09de37 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
@@ -1252,7 +1252,7 @@ public class FileWriteAheadLogManager extends
GridCacheSharedManagerAdapter impl
metrics.onWallRollOver();
if (switchSegmentRecordOffset != null) {
- int idx = (int)((cur.getSegmentId() + 1) %
dsCfg.getWalSegments());
+ int idx = (int)(cur.getSegmentId() % dsCfg.getWalSegments());
switchSegmentRecordOffset.set(idx,
hnd.getSwitchSegmentRecordOffset());
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
index 5b9f597..c0763a7 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
@@ -489,7 +489,7 @@ class FileWriteHandleImpl extends AbstractFileHandle
implements FileWriteHandle
int switchSegmentRecSize =
backwardSerializer.size(segmentRecord);
- if (rollOver && written < (maxWalSegmentSize -
switchSegmentRecSize)) {
+ if (rollOver && written + switchSegmentRecSize <
maxWalSegmentSize) {
segmentRecord.size(switchSegmentRecSize);
WALPointer segRecPtr = addRecord(segmentRecord);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
index b1c7585..d8f9ea5 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
@@ -640,7 +640,7 @@ class FsyncFileWriteHandle extends AbstractFileHandle
implements FileWriteHandle
int switchSegmentRecSize =
backwardSerializer.size(segmentRecord);
- if (rollOver && written < (maxSegmentSize -
switchSegmentRecSize)) {
+ if (rollOver && written + switchSegmentRecSize <
maxSegmentSize) {
final ByteBuffer buf =
ByteBuffer.allocate(switchSegmentRecSize);
segmentRecord.position(new
FileWALPointer(getSegmentId(), (int)written, switchSegmentRecSize));
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
index a8f6014..1018f9e 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
@@ -291,7 +291,7 @@ public class WalCompactionTest extends
GridCommonAbstractTest {
IgniteConfiguration icfg =
getConfiguration(getTestIgniteInstanceName(0));
icfg.getDataStorageConfiguration().setWalSegmentSize(300_000_000);
- icfg.getDataStorageConfiguration().setWalSegments(1);
+ icfg.getDataStorageConfiguration().setWalSegments(2);
IgniteEx ig = (IgniteEx)startGrid(getTestIgniteInstanceName(0),
optimize(icfg), null);