[jira] [Commented] (GEODE-9393) Apache Geode does not build/run on Java 16/17

2022-04-14 Thread Ernest Burghardt (Jira)


[ 
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

2022-02-10 Thread John Blum (Jira)


[ 
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

2022-02-10 Thread John Blum (Jira)


[ 
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