You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2020/07/31 11:06:14 UTC

[ignite] branch ignite-2.9 updated: IGNITE-13306 Add Java 11 specific JVM flag for fixing CPU load metric - Fixes #8088

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

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


The following commit(s) were added to refs/heads/ignite-2.9 by this push:
     new 6592dfa  IGNITE-13306 Add Java 11 specific JVM flag for fixing CPU load metric - Fixes #8088
6592dfa is described below

commit 6592dfa5782d23d480b4e79fb6bfe863cc8838ed
Author: Mirza Aliev <al...@gmail.com>
AuthorDate: Thu Jul 30 18:13:16 2020 +0300

    IGNITE-13306 Add Java 11 specific JVM flag for fixing CPU load metric - Fixes #8088
    
    Signed-off-by: Ivan Rakov <iv...@gmail.com>
    (cherry picked from commit 65e0ca879975d7aa88d9d94dbb19db1d8ac9a39f)
---
 bin/control.bat                                    |  1 +
 bin/control.sh                                     |  1 +
 bin/ignite.bat                                     |  1 +
 bin/ignite.sh                                      |  1 +
 bin/ignitevisorcmd.bat                             |  1 +
 bin/ignitevisorcmd.sh                              |  1 +
 examples/README.md                                 |  1 +
 .../ignite/internal/util/FeatureChecker.java       |  3 ++-
 .../internal/ClusterNodeMetricsSelfTest.java       | 29 ++++++++++++++++++++++
 modules/dev-utils/ignite-modules-test/build.gradle |  1 +
 modules/platforms/cpp/core/src/ignition.cpp        |  1 +
 .../Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs   |  1 +
 modules/sqlline/bin/sqlline.bat                    |  1 +
 modules/sqlline/bin/sqlline.sh                     |  1 +
 parent/pom.xml                                     |  2 +-
 15 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/bin/control.bat b/bin/control.bat
index 77a3f3f..45a8042 100644
--- a/bin/control.bat
+++ b/bin/control.bat
@@ -244,6 +244,7 @@ if %MAJOR_JAVA_VER% GEQ 11 (
     --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED ^
     --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED ^
     --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED ^
+    --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED ^
     --illegal-access=permit ^
     %JVM_OPTS%
 )
diff --git a/bin/control.sh b/bin/control.sh
index 6396d4a..5d615d4 100755
--- a/bin/control.sh
+++ b/bin/control.sh
@@ -175,6 +175,7 @@ elif [ $version -ge 11 ] ; then
         --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
         --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
         --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
+        --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
         --illegal-access=permit \
         ${JVM_OPTS}"
 fi
diff --git a/bin/ignite.bat b/bin/ignite.bat
index 98c20b8..b06bb1c 100644
--- a/bin/ignite.bat
+++ b/bin/ignite.bat
@@ -254,6 +254,7 @@ if %MAJOR_JAVA_VER% GEQ 11 (
     --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED ^
     --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED ^
     --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED ^
+    --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED ^
     --illegal-access=permit ^
     %JVM_OPTS%
 )
diff --git a/bin/ignite.sh b/bin/ignite.sh
index 265b214..baec5c2 100755
--- a/bin/ignite.sh
+++ b/bin/ignite.sh
@@ -172,6 +172,7 @@ elif [ $version -ge 11 ] ; then
         --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
         --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
         --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
+        --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED \
         --illegal-access=permit \
         ${JVM_OPTS}"
 fi
diff --git a/bin/ignitevisorcmd.bat b/bin/ignitevisorcmd.bat
index 4852038..18da4e8 100644
--- a/bin/ignitevisorcmd.bat
+++ b/bin/ignitevisorcmd.bat
@@ -183,6 +183,7 @@ if %MAJOR_JAVA_VER% GEQ 11 (
     --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED ^
     --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED ^
     --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED ^
+    --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED ^
     --illegal-access=permit ^
     %JVM_OPTS%
 )
diff --git a/bin/ignitevisorcmd.sh b/bin/ignitevisorcmd.sh
index f7ee4e0..411efa4 100755
--- a/bin/ignitevisorcmd.sh
+++ b/bin/ignitevisorcmd.sh
@@ -141,6 +141,7 @@ elif [ $version -ge 11 ] ; then
         --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
         --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
         --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
+        --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
         --illegal-access=permit \
         ${JVM_OPTS}"
 fi
diff --git a/examples/README.md b/examples/README.md
index 88de890..720c664 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -16,6 +16,7 @@ To set up local IDE to easier access to examples, it is possible to add followin
    --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
    --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
    --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
+   --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
    --illegal-access=permit``
 
 For example, for IntelliJ IDEA it is possible to use Application Templates.
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java b/modules/core/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
index 5aba646..0f49693 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
@@ -21,12 +21,13 @@ package org.apache.ignite.internal.util;
  * initialization effects.
  */
 public class FeatureChecker {
-    /** Required Options to Run un Java 9, 10, 11. */
+    /** Required Options to Run on Java 9, 10, 11. */
     public static final String JAVA_9_10_11_OPTIONS = "--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED\n" +
         "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED\n" +
         "--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED\n" +
         "--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED\n" +
         "--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED\n" +
+        "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED\n" +
         "--illegal-access=permit";
 
     /** Java version specific warning to be added in case access failed */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
index 3d345a9..bf53322 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
@@ -31,6 +31,8 @@ import org.apache.ignite.GridTestTask;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy;
 import org.apache.ignite.cluster.ClusterMetrics;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -422,6 +424,33 @@ public class ClusterNodeMetricsSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * @throws Exception If failed.
+     */
+    @Test
+    public void testCpuLoadMetric() throws Exception {
+        Ignite ignite = grid();
+
+        IgniteInternalFuture fut = GridTestUtils.runAsync(() -> {
+            try {
+                assertTrue(GridTestUtils.waitForCondition(
+                    () -> ignite.cluster().localNode().metrics().getCurrentCpuLoad() > 0, 10000L));
+            }
+            catch (IgniteInterruptedCheckedException e) {
+                e.printStackTrace();
+            }
+        });
+
+        final IgniteCache cache = ignite.getOrCreateCache(new CacheConfiguration<>("TEST")
+            .setAtomicityMode(CacheAtomicityMode.ATOMIC)
+            .setCacheMode(CacheMode.REPLICATED));
+
+        for (int i = 0; i < MAX_VALS_AMOUNT * 1000; i++)
+            cache.put(i, i);
+
+        fut.get();
+    }
+
+    /**
      * Test message.
      */
     private static class TestMessage implements Serializable {
diff --git a/modules/dev-utils/ignite-modules-test/build.gradle b/modules/dev-utils/ignite-modules-test/build.gradle
index 04bbbb8..b3af4c2 100644
--- a/modules/dev-utils/ignite-modules-test/build.gradle
+++ b/modules/dev-utils/ignite-modules-test/build.gradle
@@ -128,6 +128,7 @@ test {
         "--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED",
         "--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED",
         "--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED",
+        "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED",
         "--illegal-access=permit");
 }
 
diff --git a/modules/platforms/cpp/core/src/ignition.cpp b/modules/platforms/cpp/core/src/ignition.cpp
index 7a68fab..7922146 100644
--- a/modules/platforms/cpp/core/src/ignition.cpp
+++ b/modules/platforms/cpp/core/src/ignition.cpp
@@ -149,6 +149,7 @@ namespace ignite
                 opts.push_back(CopyChars("--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED"));
                 opts.push_back(CopyChars("--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED"));
                 opts.push_back(CopyChars("--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED"));
+                opts.push_back(CopyChars("--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED"));
                 opts.push_back(CopyChars("--illegal-access=permit"));
             }
         }
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs
index 1b8ea0c..d28b97f 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/Jni/Jvm.cs
@@ -49,6 +49,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged.Jni
             "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED",
             "--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED",
             "--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED",
+            "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED",
             "--illegal-access=permit"
         };
 
diff --git a/modules/sqlline/bin/sqlline.bat b/modules/sqlline/bin/sqlline.bat
index e8866db..c8736dd 100644
--- a/modules/sqlline/bin/sqlline.bat
+++ b/modules/sqlline/bin/sqlline.bat
@@ -133,6 +133,7 @@ if %MAJOR_JAVA_VER% GEQ 11 (
     --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED ^
     --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED ^
     --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED ^
+    --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED ^
     --illegal-access=permit ^
     %JVM_OPTS%
 )
diff --git a/modules/sqlline/bin/sqlline.sh b/modules/sqlline/bin/sqlline.sh
index c177cf7..76520a7 100644
--- a/modules/sqlline/bin/sqlline.sh
+++ b/modules/sqlline/bin/sqlline.sh
@@ -88,6 +88,7 @@ elif [ $version -ge 11 ] ; then
         --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
         --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
         --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
+        --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
         --illegal-access=permit \
         ${JVM_OPTS}"
 fi
diff --git a/parent/pom.xml b/parent/pom.xml
index 512149a..08e773f 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1040,7 +1040,7 @@
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-surefire-plugin</artifactId>
                         <configuration>
-                            <argLine>--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED --illegal-access=permit</argLine>
+                            <argLine>--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --illegal-access=permit</argLine>
                         </configuration>
                     </plugin>