You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2020/12/10 10:41:11 UTC
[ignite] branch master updated: IGNITE-13823 WAL iterator WRITE
permission requirement removed. - Fixes #8549.
This is an automated email from the ASF dual-hosted git repository.
sergeychugunov 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 fb5032e IGNITE-13823 WAL iterator WRITE permission requirement removed. - Fixes #8549.
fb5032e is described below
commit fb5032ea5b3929f8de66e4d1cd5953e928c1702c
Author: ibessonov <be...@gmail.com>
AuthorDate: Thu Dec 10 13:28:42 2020 +0300
IGNITE-13823 WAL iterator WRITE permission requirement removed. - Fixes #8549.
Signed-off-by: Sergey Chugunov <se...@gmail.com>
---
.../cache/persistence/wal/AbstractWalRecordsIterator.java | 4 ++--
.../internal/processors/cache/persistence/wal/FileDescriptor.java | 6 ++++--
.../processors/cache/persistence/wal/FileWriteAheadLogManager.java | 2 +-
.../cache/persistence/wal/io/LockedSegmentFileInputFactory.java | 2 +-
.../cache/persistence/wal/reader/IgniteWalIteratorFactory.java | 2 +-
.../cache/persistence/wal/reader/StandaloneWalRecordsIterator.java | 2 +-
.../persistence/wal/reader/StandaloneWalRecordsIteratorTest.java | 5 +++++
7 files changed, 15 insertions(+), 8 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 8730c1f..5bf7d39 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
@@ -401,7 +401,7 @@ public abstract class AbstractWalRecordsIterator
SegmentIO fileIO = null;
try {
- fileIO = desc.toIO(ioFactory);
+ fileIO = desc.toReadOnlyIO(ioFactory);
SegmentHeader segmentHeader;
@@ -513,6 +513,6 @@ public abstract class AbstractWalRecordsIterator
* @return One of implementation of {@link FileIO}.
* @throws IOException if creation of fileIo was not success.
*/
- SegmentIO toIO(FileIOFactory fileIOFactory) throws IOException;
+ SegmentIO toReadOnlyIO(FileIOFactory fileIOFactory) throws IOException;
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
index 2f088d1..f654c32 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
@@ -27,6 +27,8 @@ import org.apache.ignite.internal.processors.cache.persistence.wal.io.SegmentIO;
import org.apache.ignite.internal.util.typedef.internal.SB;
import org.jetbrains.annotations.Nullable;
+import static java.nio.file.StandardOpenOption.READ;
+
/**
* WAL file descriptor.
*/
@@ -144,8 +146,8 @@ public class FileDescriptor implements Comparable<FileDescriptor>, AbstractWalRe
}
/** {@inheritDoc} */
- @Override public SegmentIO toIO(FileIOFactory fileIOFactory) throws IOException {
- FileIO fileIO = isCompressed() ? new UnzipFileIO(file()) : fileIOFactory.create(file());
+ @Override public SegmentIO toReadOnlyIO(FileIOFactory fileIOFactory) throws IOException {
+ FileIO fileIO = isCompressed() ? new UnzipFileIO(file()) : fileIOFactory.create(file(), READ);
return new SegmentIO(idx, fileIO);
}
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 ff64f5b..34db1dee 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
@@ -1191,7 +1191,7 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl
@Nullable private FileDescriptor readFileDescriptor(File file, FileIOFactory ioFactory) {
FileDescriptor ds = new FileDescriptor(file);
- try (SegmentIO fileIO = ds.toIO(ioFactory)) {
+ try (SegmentIO fileIO = ds.toReadOnlyIO(ioFactory)) {
// File may be empty when LOG_ONLY mode is enabled and mmap is disabled.
if (fileIO.size() == 0)
return null;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/io/LockedSegmentFileInputFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/io/LockedSegmentFileInputFactory.java
index 909f912..6e38b70 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/io/LockedSegmentFileInputFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/io/LockedSegmentFileInputFactory.java
@@ -63,7 +63,7 @@ public class LockedSegmentFileInputFactory implements SegmentFileInputFactory {
id -> {
FileDescriptor segment = segmentRouter.findSegment(id);
- return segment.toIO(fileIOFactory);
+ return segment.toReadOnlyIO(fileIOFactory);
}
);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
index dd06244..68fc4324 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
@@ -332,7 +332,7 @@ public class IgniteWalIteratorFactory {
FileDescriptor ds = new FileDescriptor(file);
try (
- SegmentIO fileIO = ds.toIO(ioFactory);
+ SegmentIO fileIO = ds.toReadOnlyIO(ioFactory);
ByteBufferExpander buf = new ByteBufferExpander(HEADER_RECORD_SIZE, ByteOrder.nativeOrder())
) {
final DataInput in = segmentFileInputFactory.createFileInput(fileIO, buf);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java
index 912aecd..b2f9975 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java
@@ -326,7 +326,7 @@ class StandaloneWalRecordsIterator extends AbstractWalRecordsIterator {
SegmentHeader segmentHeader;
while (true) {
try {
- fileIO = fd.toIO(ioFactory);
+ fileIO = fd.toReadOnlyIO(ioFactory);
segmentHeader = readSegmentHeader(fileIO, FILE_INPUT_FACTORY);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIteratorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIteratorTest.java
index 26ff5a7..630d643 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIteratorTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIteratorTest.java
@@ -20,6 +20,9 @@ package org.apache.ignite.internal.processors.cache.persistence.wal.reader;
import java.io.File;
import java.io.IOException;
import java.nio.file.OpenOption;
+import java.nio.file.StandardOpenOption;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
@@ -261,6 +264,8 @@ public class StandaloneWalRecordsIteratorTest extends GridCommonAbstractTest {
private static class CountedFileIOFactory extends RandomAccessFileIOFactory {
/** {@inheritDoc} */
@Override public FileIO create(File file, OpenOption... modes) throws IOException {
+ assertEquals(Collections.singletonList(StandardOpenOption.READ), Arrays.asList(modes));
+
return new CountedFileIO(file, modes);
}
}