You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/03/25 15:31:20 UTC

[ignite] branch ignite-2.7.5 updated (88ae866 -> 70db06e)

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a change to branch ignite-2.7.5
in repository https://gitbox.apache.org/repos/asf/ignite.git.


    from 88ae866  IGNITE-11436 Added module flags to sqlline.sh and .bat to support JDK 9+ - Fixes #6195.
     new be0840d  IGNITE-11600: Fix launch scripts for Java 12 (#6326)
     new df73704  IGNITE-11030 Fix Pages List to preserve partition ID consistency. (#5915)
     new 70db06e  IGNITE-11030 Test for for change "Fix Pages List to preserve partition ID consistency."

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 bin/control.bat                                    |  2 +-
 bin/control.sh                                     |  2 +-
 bin/ignite-tf.sh                                   |  2 +-
 bin/ignite.bat                                     |  2 +-
 bin/ignite.sh                                      |  2 +-
 bin/ignitevisorcmd.bat                             |  2 +-
 bin/ignitevisorcmd.sh                              |  2 +-
 .../wal/record/delta/InitNewPageRecord.java        | 10 +++
 .../cache/persistence/freelist/PagesList.java      |  8 +-
 .../cache/persistence/pagemem/PageMemoryImpl.java  | 16 +++-
 .../persistence/db/IgniteTcBotInitNewPageTest.java | 89 ++++++++++++++++++++++
 .../testsuites/IgnitePdsWithIndexingTestSuite.java |  2 +
 modules/sqlline/bin/sqlline.bat                    |  2 +-
 modules/sqlline/bin/sqlline.sh                     |  2 +-
 .../web-console/web-agent/bin/ignite-web-agent.bat |  2 +-
 .../web-console/web-agent/bin/ignite-web-agent.sh  |  2 +-
 16 files changed, 132 insertions(+), 15 deletions(-)
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java


[ignite] 03/03: IGNITE-11030 Test for for change "Fix Pages List to preserve partition ID consistency."

Posted by dp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-2.7.5
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 70db06e1b4bb052f24306956a00159b7ce5f67b6
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Feb 1 18:19:13 2019 +0300

    IGNITE-11030 Test for for change "Fix Pages List to preserve partition ID consistency."
    
    (cherry picked from commit a486278646cfb40f1b5a37da00c0282dad4872ba)
---
 .../cache/persistence/db/IgniteTcBotInitNewPageTest.java   | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java
index 8ef517c..3bd9cb4 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java
@@ -40,12 +40,20 @@ public class IgniteTcBotInitNewPageTest extends GridCommonAbstractTest {
     /** Cache name. */
     public static final String CACHE = "cache";
 
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        super.beforeTest();
+
+        cleanPersistenceDir();
+    }
+
     /** */
-    @Test
     public void testInitNewPagePageIdConsistency() throws Exception {
-        IgniteEx ex = startGrid(0);
+        IgniteEx ignite = startGrid(0);
+
+        ignite.cluster().active(true);
 
-        IgniteCache<Object, Object> cache = ex.cache(CACHE);
+        IgniteCache<Object, Object> cache = ignite.cache(CACHE);
 
         for (int i = 0; i < 1_000_000; i++)
             cache.put(i, i);


[ignite] 02/03: IGNITE-11030 Fix Pages List to preserve partition ID consistency. (#5915)

Posted by dp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-2.7.5
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit df73704f409c511b6acc3dbace2acd3a2f4a683b
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Thu Jan 31 18:45:47 2019 +0300

    IGNITE-11030 Fix Pages List to preserve partition ID consistency. (#5915)
    
    (cherry picked from commit ec488539933f1cafa0756c7d2bd22b48f0c1e16b)
---
 .../wal/record/delta/InitNewPageRecord.java        | 10 +++
 .../cache/persistence/freelist/PagesList.java      |  8 ++-
 .../cache/persistence/pagemem/PageMemoryImpl.java  | 16 ++++-
 .../persistence/db/IgniteTcBotInitNewPageTest.java | 81 ++++++++++++++++++++++
 .../testsuites/IgnitePdsWithIndexingTestSuite.java |  2 +
 5 files changed, 113 insertions(+), 4 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
index d0ba2aa..9ed7f35 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.pagemem.wal.record.delta;
 
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
 import org.apache.ignite.internal.pagemem.PageMemory;
 import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
@@ -51,6 +52,15 @@ public class InitNewPageRecord extends PageDeltaRecord {
         this.ioType = ioType;
         this.ioVer = ioVer;
         this.newPageId = newPageId;
+
+        int newPartId = PageIdUtils.partId(newPageId);
+        int partId = PageIdUtils.partId(pageId);
+
+        if (newPartId != partId) {
+            throw new AssertionError("Partition consistency failure: " +
+                "newPageId=" + Long.toHexString(newPageId) + " (newPartId: " + newPartId + ") " +
+                "pageId=" + Long.toHexString(pageId) + " (partId: " + partId + ")");
+        }
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/PagesList.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/PagesList.java
index f1cc32a..9a7bee9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/PagesList.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/PagesList.java
@@ -1145,9 +1145,11 @@ public abstract class PagesList extends DataStructure {
 
                         decrementBucketSize(bucket);
 
-                        if (initIoVers != null)
-                            dataPageId = initReusedPage(tailId, tailPage, tailAddr, 0, FLAG_DATA, initIoVers.latest());
-                        else
+                        if (initIoVers != null) {
+                            int partId = PageIdUtils.partId(tailId);
+
+                            dataPageId = initReusedPage(tailId, tailPage, tailAddr, partId, FLAG_DATA, initIoVers.latest());
+                        } else
                             dataPageId = recyclePage(tailId, tailPage, tailAddr, null);
 
                         dirty = true;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
index 5c91378..6e00a10 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
@@ -1569,7 +1569,7 @@ public class PageMemoryImpl implements PageMemoryEx {
         long pageId = PageIO.getPageId(page + PAGE_OVERHEAD);
 
         assert pageId != 0 : U.hexLong(PageHeader.readPageId(page));
-        assert PageIO.getVersion(page + PAGE_OVERHEAD) != 0 : U.hexLong(pageId);
+        assert PageIO.getVersion(page + PAGE_OVERHEAD) != 0 : dumpPage(pageId, fullId.groupId());
         assert PageIO.getType(page + PAGE_OVERHEAD) != 0 : U.hexLong(pageId);
 
         try {
@@ -1586,6 +1586,20 @@ public class PageMemoryImpl implements PageMemoryEx {
     }
 
     /**
+     * Prepares page details for assertion.
+     * @param pageId Page id.
+     * @param grpId Group id.
+     */
+    @NotNull private String dumpPage(long pageId, int grpId) {
+        int pageIdx = PageIdUtils.pageIndex(pageId);
+        int partId = PageIdUtils.partId(pageId);
+        long off = (long)(pageIdx + 1) * pageSize();
+
+        return U.hexLong(pageId) + " (grpId=" + grpId + ", pageIdx=" + pageIdx + ", partId=" + partId + ", offH=" +
+            Long.toHexString(off) + ")";
+    }
+
+    /**
      * @param absPtr Absolute pointer to the page.
      * @return {@code True} if write lock acquired for the page.
      */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java
new file mode 100644
index 0000000..8ef517c
--- /dev/null
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotInitNewPageTest.java
@@ -0,0 +1,81 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.apache.ignite.internal.processors.cache.persistence.db;
+
+import com.google.common.base.Strings;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.DataRegionConfiguration;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.WALMode;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.pagemem.wal.record.delta.InitNewPageRecord;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.junit.Test;
+
+/**
+ * Test creates a lot of index pages in the cache with low number of partitions.<br>
+ * Then cache entries are removed to enforce all pages to come to a free list. <br>
+ * Then creation of data pages with long data will probably result in page rotation.<br>
+ * Expected behaviour: all {@link InitNewPageRecord} should have consistent partition IDs.
+ */
+public class IgniteTcBotInitNewPageTest extends GridCommonAbstractTest {
+    /** Cache name. */
+    public static final String CACHE = "cache";
+
+    /** */
+    @Test
+    public void testInitNewPagePageIdConsistency() throws Exception {
+        IgniteEx ex = startGrid(0);
+
+        IgniteCache<Object, Object> cache = ex.cache(CACHE);
+
+        for (int i = 0; i < 1_000_000; i++)
+            cache.put(i, i);
+
+        cache.clear();
+
+        for (int i = 0; i < 1_000; i++)
+            cache.put(i, Strings.repeat("Apache Ignite", 1000));
+    }
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
+
+        CacheConfiguration<Integer, Object> ccfg = new CacheConfiguration<>(CACHE);
+
+        ccfg.setAffinity(new RendezvousAffinityFunction(false, 4));
+
+        cfg.setCacheConfiguration(ccfg);
+
+        DataRegionConfiguration regCfg = new DataRegionConfiguration()
+            .setMaxSize(2L * 1024 * 1024 * 1024)
+            .setPersistenceEnabled(true);
+
+        DataStorageConfiguration dsCfg = new DataStorageConfiguration()
+            .setWalMode(WALMode.LOG_ONLY)
+            .setDefaultDataRegionConfiguration(regCfg);
+
+        cfg.setDataStorageConfiguration(dsCfg);
+
+        return cfg;
+    }
+}
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgnitePdsWithIndexingTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgnitePdsWithIndexingTestSuite.java
index 67b9fad..88e3fe7 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgnitePdsWithIndexingTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgnitePdsWithIndexingTestSuite.java
@@ -20,6 +20,7 @@ package org.apache.ignite.testsuites;
 import junit.framework.TestSuite;
 import org.apache.ignite.internal.processors.cache.IgnitePdsSingleNodeWithIndexingAndGroupPutGetPersistenceSelfTest;
 import org.apache.ignite.internal.processors.cache.IgnitePdsSingleNodeWithIndexingPutGetPersistenceTest;
+import org.apache.ignite.internal.processors.cache.persistence.db.IgniteTcBotInitNewPageTest;
 import org.apache.ignite.internal.processors.database.IgniteDbMultiNodeWithIndexingPutGetTest;
 import org.apache.ignite.internal.processors.database.IgniteDbSingleNodeWithIndexingPutGetTest;
 import org.apache.ignite.internal.processors.database.IgniteDbSingleNodeWithIndexingWalRestoreTest;
@@ -46,6 +47,7 @@ public class IgnitePdsWithIndexingTestSuite extends TestSuite {
         suite.addTestSuite(IgnitePersistentStoreSchemaLoadTest.class);
         suite.addTestSuite(IgnitePersistentStoreQueryWithMultipleClassesPerCacheTest.class);
         suite.addTestSuite(IgniteTwoRegionsRebuildIndexTest.class);
+        suite.addTestSuite(IgniteTcBotInitNewPageTest.class);
 
         return suite;
     }


[ignite] 01/03: IGNITE-11600: Fix launch scripts for Java 12 (#6326)

Posted by dp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-2.7.5
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit be0840dc983646236907efbd5f06c0cdc630d374
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Mar 22 19:16:35 2019 +0300

    IGNITE-11600: Fix launch scripts for Java 12 (#6326)
    
    (cherry picked from commit 47a49cd08d52cb96b7872b291057005abcc0789b)
---
 bin/control.bat                                        | 2 +-
 bin/control.sh                                         | 2 +-
 bin/ignite-tf.sh                                       | 2 +-
 bin/ignite.bat                                         | 2 +-
 bin/ignite.sh                                          | 2 +-
 bin/ignitevisorcmd.bat                                 | 2 +-
 bin/ignitevisorcmd.sh                                  | 2 +-
 modules/sqlline/bin/sqlline.bat                        | 2 +-
 modules/sqlline/bin/sqlline.sh                         | 2 +-
 modules/web-console/web-agent/bin/ignite-web-agent.bat | 2 +-
 modules/web-console/web-agent/bin/ignite-web-agent.sh  | 2 +-
 11 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/bin/control.bat b/bin/control.bat
index 7756f12..a984b65 100644
--- a/bin/control.bat
+++ b/bin/control.bat
@@ -233,7 +233,7 @@ if %MAJOR_JAVA_VER% GEQ 9 if %MAJOR_JAVA_VER% LSS 11 (
     %JVM_OPTS%
 )
 
-if %MAJOR_JAVA_VER% == 11 (
+if %MAJOR_JAVA_VER% GEQ 11 (
     set JVM_OPTS= ^
     --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED ^
     --add-exports=java.base/sun.nio.ch=ALL-UNNAMED ^
diff --git a/bin/control.sh b/bin/control.sh
index 90bd7b8..b764fc6 100755
--- a/bin/control.sh
+++ b/bin/control.sh
@@ -168,7 +168,7 @@ elif [ $version -gt 8 ] && [ $version -lt 11 ]; then
         --add-modules=java.xml.bind \
         ${JVM_OPTS}"
 
-elif [ $version -eq 11 ] ; then
+elif [ $version -ge 11 ] ; then
     JVM_OPTS="\
         --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
         --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
diff --git a/bin/ignite-tf.sh b/bin/ignite-tf.sh
index 9eb336a..e6dab2a 100644
--- a/bin/ignite-tf.sh
+++ b/bin/ignite-tf.sh
@@ -144,7 +144,7 @@ elif [ $version -gt 8 ] && [ $version -lt 11 ]; then
         --add-modules=java.xml.bind \
         ${JVM_OPTS}"
 
-elif [ $version -eq 11 ] ; then
+elif [ $version -ge 11 ] ; then
     JVM_OPTS="\
         --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
         --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
diff --git a/bin/ignite.bat b/bin/ignite.bat
index 2d5a08d..f5a323e 100644
--- a/bin/ignite.bat
+++ b/bin/ignite.bat
@@ -248,7 +248,7 @@ if %MAJOR_JAVA_VER% GEQ 9 if %MAJOR_JAVA_VER% LSS 11 (
     %JVM_OPTS%
 )
 
-if "%MAJOR_JAVA_VER%" == "11" (
+if %MAJOR_JAVA_VER% GEQ 11 (
     set JVM_OPTS= ^
     --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED ^
     --add-exports=java.base/sun.nio.ch=ALL-UNNAMED ^
diff --git a/bin/ignite.sh b/bin/ignite.sh
index 75681fe..bec40a3 100755
--- a/bin/ignite.sh
+++ b/bin/ignite.sh
@@ -174,7 +174,7 @@ elif [ $version -gt 8 ] && [ $version -lt 11 ]; then
         --add-modules=java.xml.bind \
         ${JVM_OPTS}"
 
-elif [ $version -eq 11 ] ; then
+elif [ $version -ge 11 ] ; then
     JVM_OPTS="\
         --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
         --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
diff --git a/bin/ignitevisorcmd.bat b/bin/ignitevisorcmd.bat
index 46645b8..892d165 100644
--- a/bin/ignitevisorcmd.bat
+++ b/bin/ignitevisorcmd.bat
@@ -177,7 +177,7 @@ if %MAJOR_JAVA_VER% GEQ 9 if %MAJOR_JAVA_VER% LSS 11 (
     %JVM_OPTS%
 )
 
-if %MAJOR_JAVA_VER% == 11 (
+if %MAJOR_JAVA_VER% GEQ 11 (
     set JVM_OPTS= ^
     --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED ^
     --add-exports=java.base/sun.nio.ch=ALL-UNNAMED ^
diff --git a/bin/ignitevisorcmd.sh b/bin/ignitevisorcmd.sh
index 523f85c..03b386a 100755
--- a/bin/ignitevisorcmd.sh
+++ b/bin/ignitevisorcmd.sh
@@ -134,7 +134,7 @@ elif [ $version -gt 8 ] && [ $version -lt 11 ]; then
         --add-modules=java.xml.bind \
         ${JVM_OPTS}"
 
-elif [ $version -eq 11 ] ; then
+elif [ $version -ge 11 ] ; then
     JVM_OPTS="\
         --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
         --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
diff --git a/modules/sqlline/bin/sqlline.bat b/modules/sqlline/bin/sqlline.bat
index 52064b6..236f986 100644
--- a/modules/sqlline/bin/sqlline.bat
+++ b/modules/sqlline/bin/sqlline.bat
@@ -127,7 +127,7 @@ if %MAJOR_JAVA_VER% GEQ 9 if %MAJOR_JAVA_VER% LSS 11 (
     %JVM_OPTS%
 )
 
-if %MAJOR_JAVA_VER% == 11 (
+if %MAJOR_JAVA_VER% GEQ 11 (
     set JVM_OPTS= ^
     --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED ^
     --add-exports=java.base/sun.nio.ch=ALL-UNNAMED ^
diff --git a/modules/sqlline/bin/sqlline.sh b/modules/sqlline/bin/sqlline.sh
index 02fed75..a807a78 100644
--- a/modules/sqlline/bin/sqlline.sh
+++ b/modules/sqlline/bin/sqlline.sh
@@ -81,7 +81,7 @@ elif [ $version -gt 8 ] && [ $version -lt 11 ]; then
         --add-modules=java.xml.bind \
         ${JVM_OPTS}"
 
-elif [ $version -eq 11 ] ; then
+elif [ $version -ge 11 ] ; then
     JVM_OPTS="\
         --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
         --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
diff --git a/modules/web-console/web-agent/bin/ignite-web-agent.bat b/modules/web-console/web-agent/bin/ignite-web-agent.bat
index 59342e1..0c41d43 100644
--- a/modules/web-console/web-agent/bin/ignite-web-agent.bat
+++ b/modules/web-console/web-agent/bin/ignite-web-agent.bat
@@ -117,7 +117,7 @@ if %MAJOR_JAVA_VER% GEQ 9 if %MAJOR_JAVA_VER% LSS 11 (
     %JVM_OPTS%
 )
 
-if "%MAJOR_JAVA_VER%" == "11" (
+if "%MAJOR_JAVA_VER%" GEQ "11" (
     set JVM_OPTS= ^
     --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED ^
     --add-exports=java.base/sun.nio.ch=ALL-UNNAMED ^
diff --git a/modules/web-console/web-agent/bin/ignite-web-agent.sh b/modules/web-console/web-agent/bin/ignite-web-agent.sh
index 74a8bf5..92b5f89 100755
--- a/modules/web-console/web-agent/bin/ignite-web-agent.sh
+++ b/modules/web-console/web-agent/bin/ignite-web-agent.sh
@@ -79,7 +79,7 @@ elif [ $version -gt 8 ] && [ $version -lt 11 ]; then
         --add-modules=java.xml.bind \
         ${JVM_OPTS}"
 
-elif [ $version -eq 11 ] ; then
+elif [ $version -ge 11 ] ; then
     JVM_OPTS="\
         --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
         --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \