[jira] [Commented] (GEODE-9393) Apache Geode does not build/run on Java 16/17
[ https://issues.apache.org/jira/browse/GEODE-9393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17522410#comment-17522410 ] Ernest Burghardt commented on GEODE-9393: - Changing this to "run on" Java 17... building on other than jdk 8 will have to be a separate effort > Apache Geode does not build/run on Java 16/17 > - > > Key: GEODE-9393 > URL: https://issues.apache.org/jira/browse/GEODE-9393 > Project: Geode > Issue Type: Sub-task > Components: core >Affects Versions: 1.13.2 >Reporter: John Blum >Priority: Blocker > Labels: Java16, Java17 > > Due to Java 16 tightened restrictions, Apache Geode fails to run on a Java 16 > Runtime (JRE). > Exceptions like the following are thrown: > {code} > - org.apache.geode.InternalGemFireException: unable to retrieve underlying > byte buffer > - at > org.apache.geode.internal.net.BufferPool.getPoolableBuffer(BufferPool.java:346) > - at > org.apache.geode.internal.net.BufferPool.releaseBuffer(BufferPool.java:310) > - at > org.apache.geode.internal.net.BufferPool.releaseSenderBuffer(BufferPool.java:213) > - at org.apache.geode.internal.tcp.MsgStreamer.release(MsgStreamer.java:100) > - at > org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:256) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511) > - at > org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346) > - at > org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2050) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1978) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2015) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083) > - at > org.apache.geode.distributed.internal.StartupMessage.process(StartupMessage.java:279) > - at > org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376) > - at > org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:441) > - at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) > - at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:441) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.doWaitingThread(ClusterOperationExecutors.java:410) > - at > org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:119) > - at java.base/java.lang.Thread.run(Thread.java:831) > - Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: > module java.base does not "opens java.nio" to unnamed module @40f9161a > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) > - at > java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) > - at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) > - at > org.apache.geode.internal.net.BufferPool.getPoolableBuffer(BufferPool.java:343) > - ... 22 common frames omitted > - 2021-04-30 14:57:13,638 INFO ributed.internal.membership.gms.Services: 606 > - received leave request from > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149):41001 > for > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149):41001 > - 2021-04-30 14:57:13,640 INFO ributed.internal.membership.gms.Services: 617 > - JoinLeave.processMessage(LeaveRequestMessage) invoked. isCoordinator=true; > isStopping=false; cancelInProgress=false > - 2021-04-30 14:57:13,647 ERROR xecutors.LoggingUncaughtExceptionHandler: 92 > - Uncaught exception in thread Thread[P2P message reader for > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149):41001 > shared unordered uid=1 local port=53039 remote port=64063,10,main] > - org.apache.geode.InternalGemFireExceptio
[jira] [Commented] (GEODE-9393) Apache Geode does not build/run on Java 16/17
[ https://issues.apache.org/jira/browse/GEODE-9393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17490604#comment-17490604 ] John Blum commented on GEODE-9393: -- See recent occurrence of this problem in GEODE-10036 when trying to start a cluster with multiple _Locators_. > Apache Geode does not build/run on Java 16/17 > - > > Key: GEODE-9393 > URL: https://issues.apache.org/jira/browse/GEODE-9393 > Project: Geode > Issue Type: Improvement > Components: core >Affects Versions: 1.13.2 >Reporter: John Blum >Priority: Blocker > Labels: Java16 > > Due to Java 16 tightened restrictions, Apache Geode fails to run on a Java 16 > Runtime (JRE). > Exceptions like the following are thrown: > {code} > - org.apache.geode.InternalGemFireException: unable to retrieve underlying > byte buffer > - at > org.apache.geode.internal.net.BufferPool.getPoolableBuffer(BufferPool.java:346) > - at > org.apache.geode.internal.net.BufferPool.releaseBuffer(BufferPool.java:310) > - at > org.apache.geode.internal.net.BufferPool.releaseSenderBuffer(BufferPool.java:213) > - at org.apache.geode.internal.tcp.MsgStreamer.release(MsgStreamer.java:100) > - at > org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:256) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511) > - at > org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346) > - at > org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2050) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1978) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2015) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083) > - at > org.apache.geode.distributed.internal.StartupMessage.process(StartupMessage.java:279) > - at > org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376) > - at > org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:441) > - at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) > - at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:441) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.doWaitingThread(ClusterOperationExecutors.java:410) > - at > org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:119) > - at java.base/java.lang.Thread.run(Thread.java:831) > - Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: > module java.base does not "opens java.nio" to unnamed module @40f9161a > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) > - at > java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) > - at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) > - at > org.apache.geode.internal.net.BufferPool.getPoolableBuffer(BufferPool.java:343) > - ... 22 common frames omitted > - 2021-04-30 14:57:13,638 INFO ributed.internal.membership.gms.Services: 606 > - received leave request from > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149):41001 > for > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149):41001 > - 2021-04-30 14:57:13,640 INFO ributed.internal.membership.gms.Services: 617 > - JoinLeave.processMessage(LeaveRequestMessage) invoked. isCoordinator=true; > isStopping=false; cancelInProgress=false > - 2021-04-30 14:57:13,647 ERROR xecutors.LoggingUncaughtExceptionHandler: 92 > - Uncaught exception in thread Thread[P2P message reader for > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149):41001 > shared unordered uid=1 local port=53039 remote port=64063,10,main] > - org.apache.geode.InternalGemFireException: unable
[jira] [Commented] (GEODE-9393) Apache Geode does not build/run on Java 16/17
[ https://issues.apache.org/jira/browse/GEODE-9393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17490603#comment-17490603 ] John Blum commented on GEODE-9393: -- Setting either JVM option would be unacceptable in the long-term for most users. Users may not necessarily have control over their deployment and runtime environment. Regarding my comment above about using the {{Runtime}} API to fork Java processes (e.g. GemFire/Geode server processes), which I mainly due for testing/examples purposes, I meant passing {{--add-opens}} JVM options in the ({{java}}) command passed to {{Runtime.exec(:String[])}} ([Javadoc|https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#exec-java.lang.String:A-]) did not seem to work correctly. I figured out that the individual elements of the command array just be present as: {code:java} String[] javaCommand = new String[..]; javaCommand[0] = "java" javaCommand[1] = "--add-opens" javaCommadn[2] = "java.base/java.lang=ALL_UNNAMED" javaCommand[3] = ... {code} The command cannot be expressed as: {code:java} String[] javaCommand = new String[..]; javaCommand[0] = "java" javaCommand[1] = "--add-opens ava.base/java.lang=ALL_UNNAMED" {code} The Java {{Runtime}} API will throw an Exception. I don't recall what Exception was thrown now, I just know the second example does not work! The first {{java}} command array configuration arrangement does, however. > Apache Geode does not build/run on Java 16/17 > - > > Key: GEODE-9393 > URL: https://issues.apache.org/jira/browse/GEODE-9393 > Project: Geode > Issue Type: Improvement > Components: core >Affects Versions: 1.13.2 >Reporter: John Blum >Priority: Blocker > Labels: Java16 > > Due to Java 16 tightened restrictions, Apache Geode fails to run on a Java 16 > Runtime (JRE). > Exceptions like the following are thrown: > {code} > - org.apache.geode.InternalGemFireException: unable to retrieve underlying > byte buffer > - at > org.apache.geode.internal.net.BufferPool.getPoolableBuffer(BufferPool.java:346) > - at > org.apache.geode.internal.net.BufferPool.releaseBuffer(BufferPool.java:310) > - at > org.apache.geode.internal.net.BufferPool.releaseSenderBuffer(BufferPool.java:213) > - at org.apache.geode.internal.tcp.MsgStreamer.release(MsgStreamer.java:100) > - at > org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:256) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511) > - at > org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346) > - at > org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2050) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1978) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2015) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083) > - at > org.apache.geode.distributed.internal.StartupMessage.process(StartupMessage.java:279) > - at > org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376) > - at > org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:441) > - at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) > - at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:441) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.doWaitingThread(ClusterOperationExecutors.java:410) > - at > org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:119) > - at java.base/java.lang.Thread.run(Thread.java:831) > - Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: > module java.base does not "opens java.nio" to unnamed module @40f9161a > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > - at > java.base/java.lang.reflect.AccessibleObject.c