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/05/26 07:54:10 UTC

[ignite] branch master updated: IGNITE-13061 Prohibit setting DataStorageConfiguration#walSegments less than 2 - Fixes #7836.

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 58dc6f3  IGNITE-13061 Prohibit setting DataStorageConfiguration#walSegments less than 2 - Fixes #7836.
58dc6f3 is described below

commit 58dc6f322bfefc199c62c3dd14b429f6de22016c
Author: Semyon Danilov <sa...@yandex.ru>
AuthorDate: Tue May 26 10:53:08 2020 +0300

    IGNITE-13061 Prohibit setting DataStorageConfiguration#walSegments less than 2 - Fixes #7836.
    
    Signed-off-by: Ilya Kasnacheev <il...@gmail.com>
---
 .../ignite/configuration/DataStorageConfiguration.java  |  5 ++++-
 .../cache/DataStorageConfigurationValidationTest.java   | 17 +++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
index a705e49..c286f95 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
@@ -610,10 +610,13 @@ public class DataStorageConfiguration implements Serializable {
      * Sets a number of WAL segments to work with. For performance reasons,
      * the whole WAL is split into files of fixed length called segments.
      *
-     * @param walSegments Number of WAL segments.
+     * @param walSegments Number of WAL segments. Value must be greater than 1.
      * @return {@code this} for chaining.
      */
     public DataStorageConfiguration setWalSegments(int walSegments) {
+        if (walSegments != 0)
+            A.ensure(walSegments > 1, "Number of WAL segments must be greater than 1.");
+
         this.walSegments = walSegments;
 
         return this;
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/DataStorageConfigurationValidationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/DataStorageConfigurationValidationTest.java
index 8a6e2c1..e2f3d27 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/DataStorageConfigurationValidationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/DataStorageConfigurationValidationTest.java
@@ -77,4 +77,21 @@ public class DataStorageConfigurationValidationTest {
 
         assertEquals(Integer.MAX_VALUE, cfg.getWalSegmentSize());
     }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Test
+    public void testSetWalSegmentsCountShouldThrowExceptionThenLessThan2() throws Exception {
+        final DataStorageConfiguration cfg = new DataStorageConfiguration();
+
+        GridTestUtils.assertThrows(null, new Callable<Void>() {
+            @Override public Void call() throws Exception {
+                cfg.setWalSegments(1);
+
+                return null;
+            }
+        }, IllegalArgumentException.class, null);
+    }
+
 }