You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by John Blum <jb...@vmware.com> on 2021/05/05 14:57:09 UTC

JDK 16 Support?

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by Jacob Barrett <ja...@vmware.com>.

On May 5, 2021, at 9:44 AM, John Blum <jb...@vmware.com>> wrote:

Actually, I should clarify, we might be able to use SDG next, building/running on Apache Geode 1.14, iff Geode 1.14 would be available relatively soon (e.g. SD[G] 2.6).

This change isn’t in 1.14 but we could barckport it since it hasn’t released yet.

Let me ask... are there builds of Apache Geode setup on Java 16 already/yet?

Just curious if there are any more downstream issues I have yet to encounter on Java 16?  I suppose I will know more once I try Dan's suggestion with the JVM option.

There are no CI tests executed with Java 16 at this time.

We have run some benchmarks manually with Java 16 without issue.


-Jake


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Actually, I should clarify, we might be able to use SDG next, building/running on Apache Geode 1.14, iff Geode 1.14 would be available relatively soon (e.g. SD[G] 2.6).

Otherwise, backporting this change to 1.13.x (at least) would be helpful.

Let me ask... are there builds of Apache Geode setup on Java 16 already/yet?

Just curious if there are any more downstream issues I have yet to encounter on Java 16?  I suppose I will know more once I try Dan's suggestion with the JVM option.

Thanks,
-j

________________________________
From: John Blum <jb...@vmware.com>
Sent: Wednesday, May 5, 2021 9:35 AM
To: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

SDG currently builds/runs on Apache Geode 1.13.2.

SDG next uses Apache Geode 1.14 build snapshots, but SD Examples are not configured to use SDG next ATM.  Might be able to explore that.
________________________________
From: Jacob Barrett <ja...@vmware.com>
Sent: Wednesday, May 5, 2021 9:24 AM
To: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

John,

Is this with the current develop branch of Geode or a previous release. Develop does not use reflections anymore in the BufferPool. If there is a specific version you are locked into we could look at backporting this to a patch release.

See https://github.com/apache/geode/pull/6207<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fgeode%2Fpull%2F6207&data=04%7C01%7Cjblum%40vmware.com%7C709e88b748de4cb7a31908d90fe3d4fe%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637558293474167284%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WsesgKa%2FX6q3Woh8rTOsLvItzHcQNbPb%2BVxK1zyaBAE%3D&reserved=0>

-Jake


On May 5, 2021, at 9:19 AM, John Blum <jb...@vmware.com>> wrote:

Hi Dan-

Thanks for the tip.  I can certainly give that a try and see what results I get.

It is quite possibly a problem for non-internal JDK, or even non-JDK [protected] classes as well.

I ran into a similar problems inside of SDG itself, which turned out to be an old Java bug, which did not occur in Java 15, 14 or even 11 that we have tested on, but resurfaced in 16.

FYR: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8227415<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.java.com%2Fbugdatabase%2Fview_bug.do%3Fbug_id%3D8227415&data=04%7C01%7Cjblum%40vmware.com%7C709e88b748de4cb7a31908d90fe3d4fe%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637558293474177277%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=5Dz0v0K7IL0nnGZhzk3Hp%2BEBgLYyxpmTB1T7uX6yPHs%3D&reserved=0>

Essentially, SDG failed due to:

Caused by: java.lang.IllegalAccessError: class org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 tried to access protected method 'boolean org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport.hasValue(java.lang.Number)

And...

(org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 and org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport are in unnamed module of loader 'app')

SDG's o.s.d.g.config.annotation.AbstractCacheConfiguration class extends the o.s.d.g.config.annotation.support.AbstractAnnotationConfigSupport class.  These classes are in a SDG named module.  So, I am not sure I agree with Java, or at least fully understand in this case, but it seems Java 16 may have added additional restrictions.

Anyway, I not trying to say SDG is not in error  or that Java is necessarily wrong, but there is a definitively a difference between Java 15 and 16 and that this problem seems to stretch beyond Java (internal) types, FYI.

Regards,
John


________________________________
From: Dan Smith <da...@vmware.com>>
Sent: Wednesday, May 5, 2021 9:05 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Subject: Re: JDK 16 Support?

You might be able to work around this for the moment using something like --add-opens java.base/java.nio=ALL-UNNAMED when you start the JVM.

I do agree we should not be using these internal JDK classes for our buffer pool. Maybe someone who knows more about that code can share why we are doing this.

-Dan
________________________________
From: John Blum <jb...@vmware.com>>
Sent: Wednesday, May 5, 2021 7:57 AM
To: geode <de...@geode.apache.org>>; user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Subject: JDK 16 Support?

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
SDG currently builds/runs on Apache Geode 1.13.2.

SDG next uses Apache Geode 1.14 build snapshots, but SD Examples are not configured to use SDG next ATM.  Might be able to explore that.
________________________________
From: Jacob Barrett <ja...@vmware.com>
Sent: Wednesday, May 5, 2021 9:24 AM
To: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

John,

Is this with the current develop branch of Geode or a previous release. Develop does not use reflections anymore in the BufferPool. If there is a specific version you are locked into we could look at backporting this to a patch release.

See https://github.com/apache/geode/pull/6207<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fgeode%2Fpull%2F6207&data=04%7C01%7Cjblum%40vmware.com%7Ca7e48d774e094eac39f208d90fe24fab%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637558286954980924%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=2uJi3PgS0jYcK5gRuo1HHF8kBge1NXrjbKW6Y2%2Fg00w%3D&reserved=0>

-Jake


On May 5, 2021, at 9:19 AM, John Blum <jb...@vmware.com>> wrote:

Hi Dan-

Thanks for the tip.  I can certainly give that a try and see what results I get.

It is quite possibly a problem for non-internal JDK, or even non-JDK [protected] classes as well.

I ran into a similar problems inside of SDG itself, which turned out to be an old Java bug, which did not occur in Java 15, 14 or even 11 that we have tested on, but resurfaced in 16.

FYR: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8227415<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.java.com%2Fbugdatabase%2Fview_bug.do%3Fbug_id%3D8227415&data=04%7C01%7Cjblum%40vmware.com%7Ca7e48d774e094eac39f208d90fe24fab%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637558286954980924%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BMxhCzQhYD8XtQ%2FcseBKrKc34%2F5S6mth0ynfdASIYTs%3D&reserved=0>

Essentially, SDG failed due to:

Caused by: java.lang.IllegalAccessError: class org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 tried to access protected method 'boolean org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport.hasValue(java.lang.Number)

And...

(org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 and org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport are in unnamed module of loader 'app')

SDG's o.s.d.g.config.annotation.AbstractCacheConfiguration class extends the o.s.d.g.config.annotation.support.AbstractAnnotationConfigSupport class.  These classes are in a SDG named module.  So, I am not sure I agree with Java, or at least fully understand in this case, but it seems Java 16 may have added additional restrictions.

Anyway, I not trying to say SDG is not in error  or that Java is necessarily wrong, but there is a definitively a difference between Java 15 and 16 and that this problem seems to stretch beyond Java (internal) types, FYI.

Regards,
John


________________________________
From: Dan Smith <da...@vmware.com>>
Sent: Wednesday, May 5, 2021 9:05 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Subject: Re: JDK 16 Support?

You might be able to work around this for the moment using something like --add-opens java.base/java.nio=ALL-UNNAMED when you start the JVM.

I do agree we should not be using these internal JDK classes for our buffer pool. Maybe someone who knows more about that code can share why we are doing this.

-Dan
________________________________
From: John Blum <jb...@vmware.com>>
Sent: Wednesday, May 5, 2021 7:57 AM
To: geode <de...@geode.apache.org>>; user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Subject: JDK 16 Support?

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by Jacob Barrett <ja...@vmware.com>.
John,

Is this with the current develop branch of Geode or a previous release. Develop does not use reflections anymore in the BufferPool. If there is a specific version you are locked into we could look at backporting this to a patch release.

See https://github.com/apache/geode/pull/6207

-Jake


On May 5, 2021, at 9:19 AM, John Blum <jb...@vmware.com>> wrote:

Hi Dan-

Thanks for the tip.  I can certainly give that a try and see what results I get.

It is quite possibly a problem for non-internal JDK, or even non-JDK [protected] classes as well.

I ran into a similar problems inside of SDG itself, which turned out to be an old Java bug, which did not occur in Java 15, 14 or even 11 that we have tested on, but resurfaced in 16.

FYR: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8227415<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.java.com%2Fbugdatabase%2Fview_bug.do%3Fbug_id%3D8227415&data=04%7C01%7Cjabarrett%40vmware.com%7C938f29460c3243d18be508d90fe1956d%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637558283827165906%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dRsjzg58u2Osou%2BPmBQfNd%2B4J1UwyJ3%2BqfXH6kKU6k4%3D&reserved=0>

Essentially, SDG failed due to:

Caused by: java.lang.IllegalAccessError: class org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 tried to access protected method 'boolean org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport.hasValue(java.lang.Number)

And...

(org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 and org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport are in unnamed module of loader 'app')

SDG's o.s.d.g.config.annotation.AbstractCacheConfiguration class extends the o.s.d.g.config.annotation.support.AbstractAnnotationConfigSupport class.  These classes are in a SDG named module.  So, I am not sure I agree with Java, or at least fully understand in this case, but it seems Java 16 may have added additional restrictions.

Anyway, I not trying to say SDG is not in error  or that Java is necessarily wrong, but there is a definitively a difference between Java 15 and 16 and that this problem seems to stretch beyond Java (internal) types, FYI.

Regards,
John


________________________________
From: Dan Smith <da...@vmware.com>>
Sent: Wednesday, May 5, 2021 9:05 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Subject: Re: JDK 16 Support?

You might be able to work around this for the moment using something like --add-opens java.base/java.nio=ALL-UNNAMED when you start the JVM.

I do agree we should not be using these internal JDK classes for our buffer pool. Maybe someone who knows more about that code can share why we are doing this.

-Dan
________________________________
From: John Blum <jb...@vmware.com>>
Sent: Wednesday, May 5, 2021 7:57 AM
To: geode <de...@geode.apache.org>>; user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Subject: JDK 16 Support?

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Hi Dan-

Thanks for the tip.  I can certainly give that a try and see what results I get.

It is quite possibly a problem for non-internal JDK, or even non-JDK [protected] classes as well.

I ran into a similar problems inside of SDG itself, which turned out to be an old Java bug, which did not occur in Java 15, 14 or even 11 that we have tested on, but resurfaced in 16.

FYR: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8227415

Essentially, SDG failed due to:

Caused by: java.lang.IllegalAccessError: class org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 tried to access protected method 'boolean org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport.hasValue(java.lang.Number)

And...

(org.springframework.data.gemfire.config.annotation.AbstractCacheConfiguration$$Lambda$634/0x0000000800f1fa50 and org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport are in unnamed module of loader 'app')

SDG's o.s.d.g.config.annotation.AbstractCacheConfiguration class extends the o.s.d.g.config.annotation.support.AbstractAnnotationConfigSupport class.  These classes are in a SDG named module.  So, I am not sure I agree with Java, or at least fully understand in this case, but it seems Java 16 may have added additional restrictions.

Anyway, I not trying to say SDG is not in error  or that Java is necessarily wrong, but there is a definitively a difference between Java 15 and 16 and that this problem seems to stretch beyond Java (internal) types, FYI.

Regards,
John


________________________________
From: Dan Smith <da...@vmware.com>
Sent: Wednesday, May 5, 2021 9:05 AM
To: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

You might be able to work around this for the moment using something like --add-opens java.base/java.nio=ALL-UNNAMED when you start the JVM.

I do agree we should not be using these internal JDK classes for our buffer pool. Maybe someone who knows more about that code can share why we are doing this.

-Dan
________________________________
From: John Blum <jb...@vmware.com>
Sent: Wednesday, May 5, 2021 7:57 AM
To: geode <de...@geode.apache.org>; user@geode.apache.org <us...@geode.apache.org>
Subject: JDK 16 Support?

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by Dan Smith <da...@vmware.com>.
You might be able to work around this for the moment using something like --add-opens java.base/java.nio=ALL-UNNAMED when you start the JVM.

I do agree we should not be using these internal JDK classes for our buffer pool. Maybe someone who knows more about that code can share why we are doing this.

-Dan
________________________________
From: John Blum <jb...@vmware.com>
Sent: Wednesday, May 5, 2021 7:57 AM
To: geode <de...@geode.apache.org>; user@geode.apache.org <us...@geode.apache.org>
Subject: JDK 16 Support?

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Found (encountered) another JDK 16 problem with Apache Geode (see StackTrace below).

Setting another (--add-opens JVM option to 'java.base/java.util=ALL-UNNAMED') resolves this issue for now.

2021-05-10 15:10:25,458 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[LonerDistributionManagerThread8,5,main]
java.lang.reflect.InaccessibleObjectException: Unable to make field private static final jdk.internal.access.JavaLangAccess java.util.UUID.jla accessible: module java.base does not "opens java.util" to unnamed module @7960847b
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.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at org.apache.geode.internal.size.ObjectTraverser.buildFieldSet(ObjectTraverser.java:117)
at org.apache.geode.internal.size.ObjectTraverser.cacheFieldSet(ObjectTraverser.java:92)
at org.apache.geode.internal.size.ObjectTraverser.doSearch(ObjectTraverser.java:65)
at org.apache.geode.internal.size.ObjectTraverser.breadthFirstSearch(ObjectTraverser.java:54)
at org.apache.geode.internal.size.ObjectGraphSizer.size(ObjectGraphSizer.java:101)
at org.apache.geode.internal.size.ReflectionObjectSizer.sizeof(ReflectionObjectSizer.java:76)
at org.apache.geode.internal.size.SizeClassOnceObjectSizer.sizeof(SizeClassOnceObjectSizer.java:63)
at org.apache.geode.internal.cache.TombstoneService$Tombstone.getSize(TombstoneService.java:398)
at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.scheduleTombstone(TombstoneService.java:982)
at org.apache.geode.internal.cache.TombstoneService.scheduleTombstone(TombstoneService.java:196)
at org.apache.geode.internal.cache.LocalRegion.scheduleTombstone(LocalRegion.java:3298)
at org.apache.geode.internal.cache.entries.AbstractRegionEntry.makeTombstone(AbstractRegionEntry.java:265)
at org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:879)
at org.apache.geode.internal.cache.map.RegionMapDestroy.destroyEntry(RegionMapDestroy.java:734)
at org.apache.geode.internal.cache.map.RegionMapDestroy.destroyExistingEntry(RegionMapDestroy.java:392)
at org.apache.geode.internal.cache.map.RegionMapDestroy.handleExistingRegionEntry(RegionMapDestroy.java:244)
at org.apache.geode.internal.cache.map.RegionMapDestroy.destroy(RegionMapDestroy.java:152)
at org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:968)
at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6499)
at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6473)
at org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1194)
at org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1127)
at org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:940)
at org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1112)
at org.apache.geode.cache.lucene.internal.partition.BucketTargetingMap.remove(BucketTargetingMap.java:59)
at org.apache.geode.cache.lucene.internal.filesystem.FileSystem.deleteFile(FileSystem.java:125)
at org.apache.geode.cache.lucene.internal.directory.RegionDirectory.deleteFile(RegionDirectory.java:66)
at org.apache.lucene.store.LockValidatingDirectoryWrapper.deleteFile(LockValidatingDirectoryWrapper.java:38)
at org.apache.lucene.index.IndexFileDeleter.deleteFile(IndexFileDeleter.java:723)
at org.apache.lucene.index.IndexFileDeleter.deleteFiles(IndexFileDeleter.java:717)
at org.apache.lucene.index.IndexFileDeleter.deleteNewFiles(IndexFileDeleter.java:693)
at org.apache.lucene.index.IndexWriter.deleteNewFiles(IndexWriter.java:4965)
at org.apache.lucene.index.DocumentsWriter$DeleteNewFilesEvent.process(DocumentsWriter.java:771)
at org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5043)
at org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5034)
at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:3019)
at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3244)
at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3207)
at org.apache.geode.cache.lucene.internal.repository.IndexRepositoryImpl.commit(IndexRepositoryImpl.java:169)
at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.reindexUserDataRegion(IndexRepositoryFactory.java:196)
at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.finishComputingRepository(IndexRepositoryFactory.java:128)
at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.computeIndexRepository(IndexRepositoryFactory.java:66)
at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:151)
at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.lambda$computeRepository$1(PartitionedRepositoryManager.java:170)
at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:162)
at org.apache.geode.cache.lucene.internal.LuceneBucketListener.lambda$afterPrimary$0(LuceneBucketListener.java:40)


________________________________
From: John Blum <jb...@vmware.com>
Sent: Monday, May 10, 2021 11:19 AM
To: dev@geode.apache.org <de...@geode.apache.org>; user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

Thanks Bill (everyone) for the information.

For clarification, SDG primarily builds on Apache Geode GA versions (e.g. 1.13.2). This is true for 3rd party libs as well. We rarely, if ever, use milestones or release candidates, much less snapshots, for any non-controlled dependency, in the mainline. This is necessary to always keep SD[G] in a releasable state when/if needed (e.g. critical CVE).

As an exception, we additionally build SDG (master-next) on the most recent 1.14 snapshots (i.e. mainline version +1, e.g. main is set to 1.13 [1] and master-next is set to 1.14 [2], even if an Apache Geode 1.15 branch were cut) to prepare SDG for the next version when it becomes GA so we are ready to upgrade to that version and get it into a release ASAP.

All of this is to say, any changes to support JDK 16 or above, would need to be either in a Geode 1.13.3+ release and/or 1.14 when available for SDG to be fully JDK 16+ compatible.

Thx,
-j


[1] https://github.com/spring-projects/spring-data-geode/blob/main/spring-data-geode/pom.xml#L23<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fspring-projects%2Fspring-data-geode%2Fblob%2Fmain%2Fspring-data-geode%2Fpom.xml%23L23&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683129228%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Xtda7TByM5JmN1gvuCPNMRL3fJTcYrd6tWCzC5lTc60%3D&reserved=0>
[2] https://github.com/spring-projects/spring-data-geode/blob/master-next/spring-data-geode/pom.xml#L23<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fspring-projects%2Fspring-data-geode%2Fblob%2Fmaster-next%2Fspring-data-geode%2Fpom.xml%23L23&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683139226%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=cMjYaCp4ISdqwVyU8GionRK7eLEn3xQv786lAw%2F%2BfTY%3D&reserved=0>

________________________________
From: Bill Burcham <bi...@gmail.com>
Sent: Monday, May 10, 2021 10:54 AM
To: dev@geode.apache.org <de...@geode.apache.org>
Cc: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

John, this doesn't speak to the general question of JDK version support. But the particular stack trace you showed makes me wonder if the fix for GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf eliminated the reflective field access in favor of some simpler down-casting.

On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com>> wrote:
Hi Anthony-

Thank you for the quick reply.

The Spring Data Team is currently looking ahead towards Java 16 when building and running Spring Data examples to get a sense for what works and what doesn't, now that Java 16 is GA along with anticipation for users with questions or problems.

Spring Framework itself aligns and is based on LTS Java versions only, currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely move the baseline to Java 11 or possibly even Java 17, we are not sure which yet.

Just want to share our findings and give advanced notice.

Thanks,
John

________________________________
From: Anthony Baker <ba...@vmware.com>>
Sent: Wednesday, May 5, 2021 8:14 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Cc: geode <de...@geode.apache.org>>
Subject: Re: JDK 16 Support?

Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683139226%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=84gMPtGjq1MvDxEX0dMgx3PAW4Aj7FXcJYVqU8cbUBg%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683149220%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=RQE25o45%2BbhTW7kTlA6mB3SQGAvuBiXdICJKIMVSFo4%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683149220%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=RQE25o45%2BbhTW7kTlA6mB3SQGAvuBiXdICJKIMVSFo4%3D&reserved=0>.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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683159214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fQx0cAmxFlHnUcgImd%2Fw%2BaTTTNgOlp6sUyDPoYsLns0%3D&reserved=0>.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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683159214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fQx0cAmxFlHnUcgImd%2Fw%2BaTTTNgOlp6sUyDPoYsLns0%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683169208%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=6XA5sM9oodOfoLTO%2FbbQs8LPMM%2FIXuyR4XYT81Wl5xg%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683179202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xRM0ZfXSMcTW5vzozH6gbh0uNcYeWWzVPNXVkvK1k3Y%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683179202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xRM0ZfXSMcTW5vzozH6gbh0uNcYeWWzVPNXVkvK1k3Y%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683189194%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=%2FhiuTdBjclTsZ02akGElKqZMYqTm3CiceG3ubpQvao4%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683189194%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=%2FhiuTdBjclTsZ02akGElKqZMYqTm3CiceG3ubpQvao4%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683199192%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=gSf8Sgf354vcb2xHa9YiXIOpERU%2BAQwsjklXSnWXVOc%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683199192%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=gSf8Sgf354vcb2xHa9YiXIOpERU%2BAQwsjklXSnWXVOc%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Found (encountered) another JDK 16 problem with Apache Geode (see StackTrace below).

Setting another (--add-opens JVM option to 'java.base/java.util=ALL-UNNAMED') resolves this issue for now.

2021-05-10 15:10:25,458 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[LonerDistributionManagerThread8,5,main]
java.lang.reflect.InaccessibleObjectException: Unable to make field private static final jdk.internal.access.JavaLangAccess java.util.UUID.jla accessible: module java.base does not "opens java.util" to unnamed module @7960847b
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.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at org.apache.geode.internal.size.ObjectTraverser.buildFieldSet(ObjectTraverser.java:117)
at org.apache.geode.internal.size.ObjectTraverser.cacheFieldSet(ObjectTraverser.java:92)
at org.apache.geode.internal.size.ObjectTraverser.doSearch(ObjectTraverser.java:65)
at org.apache.geode.internal.size.ObjectTraverser.breadthFirstSearch(ObjectTraverser.java:54)
at org.apache.geode.internal.size.ObjectGraphSizer.size(ObjectGraphSizer.java:101)
at org.apache.geode.internal.size.ReflectionObjectSizer.sizeof(ReflectionObjectSizer.java:76)
at org.apache.geode.internal.size.SizeClassOnceObjectSizer.sizeof(SizeClassOnceObjectSizer.java:63)
at org.apache.geode.internal.cache.TombstoneService$Tombstone.getSize(TombstoneService.java:398)
at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.scheduleTombstone(TombstoneService.java:982)
at org.apache.geode.internal.cache.TombstoneService.scheduleTombstone(TombstoneService.java:196)
at org.apache.geode.internal.cache.LocalRegion.scheduleTombstone(LocalRegion.java:3298)
at org.apache.geode.internal.cache.entries.AbstractRegionEntry.makeTombstone(AbstractRegionEntry.java:265)
at org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:879)
at org.apache.geode.internal.cache.map.RegionMapDestroy.destroyEntry(RegionMapDestroy.java:734)
at org.apache.geode.internal.cache.map.RegionMapDestroy.destroyExistingEntry(RegionMapDestroy.java:392)
at org.apache.geode.internal.cache.map.RegionMapDestroy.handleExistingRegionEntry(RegionMapDestroy.java:244)
at org.apache.geode.internal.cache.map.RegionMapDestroy.destroy(RegionMapDestroy.java:152)
at org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:968)
at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6499)
at org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6473)
at org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1194)
at org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1127)
at org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:940)
at org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1112)
at org.apache.geode.cache.lucene.internal.partition.BucketTargetingMap.remove(BucketTargetingMap.java:59)
at org.apache.geode.cache.lucene.internal.filesystem.FileSystem.deleteFile(FileSystem.java:125)
at org.apache.geode.cache.lucene.internal.directory.RegionDirectory.deleteFile(RegionDirectory.java:66)
at org.apache.lucene.store.LockValidatingDirectoryWrapper.deleteFile(LockValidatingDirectoryWrapper.java:38)
at org.apache.lucene.index.IndexFileDeleter.deleteFile(IndexFileDeleter.java:723)
at org.apache.lucene.index.IndexFileDeleter.deleteFiles(IndexFileDeleter.java:717)
at org.apache.lucene.index.IndexFileDeleter.deleteNewFiles(IndexFileDeleter.java:693)
at org.apache.lucene.index.IndexWriter.deleteNewFiles(IndexWriter.java:4965)
at org.apache.lucene.index.DocumentsWriter$DeleteNewFilesEvent.process(DocumentsWriter.java:771)
at org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5043)
at org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5034)
at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:3019)
at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3244)
at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3207)
at org.apache.geode.cache.lucene.internal.repository.IndexRepositoryImpl.commit(IndexRepositoryImpl.java:169)
at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.reindexUserDataRegion(IndexRepositoryFactory.java:196)
at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.finishComputingRepository(IndexRepositoryFactory.java:128)
at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.computeIndexRepository(IndexRepositoryFactory.java:66)
at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:151)
at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.lambda$computeRepository$1(PartitionedRepositoryManager.java:170)
at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:162)
at org.apache.geode.cache.lucene.internal.LuceneBucketListener.lambda$afterPrimary$0(LuceneBucketListener.java:40)


________________________________
From: John Blum <jb...@vmware.com>
Sent: Monday, May 10, 2021 11:19 AM
To: dev@geode.apache.org <de...@geode.apache.org>; user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

Thanks Bill (everyone) for the information.

For clarification, SDG primarily builds on Apache Geode GA versions (e.g. 1.13.2). This is true for 3rd party libs as well. We rarely, if ever, use milestones or release candidates, much less snapshots, for any non-controlled dependency, in the mainline. This is necessary to always keep SD[G] in a releasable state when/if needed (e.g. critical CVE).

As an exception, we additionally build SDG (master-next) on the most recent 1.14 snapshots (i.e. mainline version +1, e.g. main is set to 1.13 [1] and master-next is set to 1.14 [2], even if an Apache Geode 1.15 branch were cut) to prepare SDG for the next version when it becomes GA so we are ready to upgrade to that version and get it into a release ASAP.

All of this is to say, any changes to support JDK 16 or above, would need to be either in a Geode 1.13.3+ release and/or 1.14 when available for SDG to be fully JDK 16+ compatible.

Thx,
-j


[1] https://github.com/spring-projects/spring-data-geode/blob/main/spring-data-geode/pom.xml#L23<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fspring-projects%2Fspring-data-geode%2Fblob%2Fmain%2Fspring-data-geode%2Fpom.xml%23L23&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683129228%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Xtda7TByM5JmN1gvuCPNMRL3fJTcYrd6tWCzC5lTc60%3D&reserved=0>
[2] https://github.com/spring-projects/spring-data-geode/blob/master-next/spring-data-geode/pom.xml#L23<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fspring-projects%2Fspring-data-geode%2Fblob%2Fmaster-next%2Fspring-data-geode%2Fpom.xml%23L23&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683139226%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=cMjYaCp4ISdqwVyU8GionRK7eLEn3xQv786lAw%2F%2BfTY%3D&reserved=0>

________________________________
From: Bill Burcham <bi...@gmail.com>
Sent: Monday, May 10, 2021 10:54 AM
To: dev@geode.apache.org <de...@geode.apache.org>
Cc: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

John, this doesn't speak to the general question of JDK version support. But the particular stack trace you showed makes me wonder if the fix for GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf eliminated the reflective field access in favor of some simpler down-casting.

On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com>> wrote:
Hi Anthony-

Thank you for the quick reply.

The Spring Data Team is currently looking ahead towards Java 16 when building and running Spring Data examples to get a sense for what works and what doesn't, now that Java 16 is GA along with anticipation for users with questions or problems.

Spring Framework itself aligns and is based on LTS Java versions only, currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely move the baseline to Java 11 or possibly even Java 17, we are not sure which yet.

Just want to share our findings and give advanced notice.

Thanks,
John

________________________________
From: Anthony Baker <ba...@vmware.com>>
Sent: Wednesday, May 5, 2021 8:14 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Cc: geode <de...@geode.apache.org>>
Subject: Re: JDK 16 Support?

Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683139226%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=84gMPtGjq1MvDxEX0dMgx3PAW4Aj7FXcJYVqU8cbUBg%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683149220%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=RQE25o45%2BbhTW7kTlA6mB3SQGAvuBiXdICJKIMVSFo4%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683149220%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=RQE25o45%2BbhTW7kTlA6mB3SQGAvuBiXdICJKIMVSFo4%3D&reserved=0>.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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683159214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fQx0cAmxFlHnUcgImd%2Fw%2BaTTTNgOlp6sUyDPoYsLns0%3D&reserved=0>.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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683159214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fQx0cAmxFlHnUcgImd%2Fw%2BaTTTNgOlp6sUyDPoYsLns0%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683169208%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=6XA5sM9oodOfoLTO%2FbbQs8LPMM%2FIXuyR4XYT81Wl5xg%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683179202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xRM0ZfXSMcTW5vzozH6gbh0uNcYeWWzVPNXVkvK1k3Y%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683179202%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xRM0ZfXSMcTW5vzozH6gbh0uNcYeWWzVPNXVkvK1k3Y%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683189194%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=%2FhiuTdBjclTsZ02akGElKqZMYqTm3CiceG3ubpQvao4%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683189194%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=%2FhiuTdBjclTsZ02akGElKqZMYqTm3CiceG3ubpQvao4%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683199192%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=gSf8Sgf354vcb2xHa9YiXIOpERU%2BAQwsjklXSnWXVOc%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C9998d26cebc24240bd8e08d913e024d9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562675683199192%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=gSf8Sgf354vcb2xHa9YiXIOpERU%2BAQwsjklXSnWXVOc%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Thanks Bill (everyone) for the information.

For clarification, SDG primarily builds on Apache Geode GA versions (e.g. 1.13.2). This is true for 3rd party libs as well. We rarely, if ever, use milestones or release candidates, much less snapshots, for any non-controlled dependency, in the mainline. This is necessary to always keep SD[G] in a releasable state when/if needed (e.g. critical CVE).

As an exception, we additionally build SDG (master-next) on the most recent 1.14 snapshots (i.e. mainline version +1, e.g. main is set to 1.13 [1] and master-next is set to 1.14 [2], even if an Apache Geode 1.15 branch were cut) to prepare SDG for the next version when it becomes GA so we are ready to upgrade to that version and get it into a release ASAP.

All of this is to say, any changes to support JDK 16 or above, would need to be either in a Geode 1.13.3+ release and/or 1.14 when available for SDG to be fully JDK 16+ compatible.

Thx,
-j


[1] https://github.com/spring-projects/spring-data-geode/blob/main/spring-data-geode/pom.xml#L23
[2] https://github.com/spring-projects/spring-data-geode/blob/master-next/spring-data-geode/pom.xml#L23

________________________________
From: Bill Burcham <bi...@gmail.com>
Sent: Monday, May 10, 2021 10:54 AM
To: dev@geode.apache.org <de...@geode.apache.org>
Cc: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

John, this doesn't speak to the general question of JDK version support. But the particular stack trace you showed makes me wonder if the fix for GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf eliminated the reflective field access in favor of some simpler down-casting.

On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com>> wrote:
Hi Anthony-

Thank you for the quick reply.

The Spring Data Team is currently looking ahead towards Java 16 when building and running Spring Data examples to get a sense for what works and what doesn't, now that Java 16 is GA along with anticipation for users with questions or problems.

Spring Framework itself aligns and is based on LTS Java versions only, currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely move the baseline to Java 11 or possibly even Java 17, we are not sure which yet.

Just want to share our findings and give advanced notice.

Thanks,
John

________________________________
From: Anthony Baker <ba...@vmware.com>>
Sent: Wednesday, May 5, 2021 8:14 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Cc: geode <de...@geode.apache.org>>
Subject: Re: JDK 16 Support?

Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832129959%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=0s0zAIHOunv9GSNPbfu%2BelBHAGU6vpaYpC864A9%2FjNA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832139960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Mmudm8ZO%2BkpGzK0lnhzeI%2BNBsOgZEpINeNiAF5MeWx4%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832139960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Mmudm8ZO%2BkpGzK0lnhzeI%2BNBsOgZEpINeNiAF5MeWx4%3D&reserved=0>.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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832139960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Mmudm8ZO%2BkpGzK0lnhzeI%2BNBsOgZEpINeNiAF5MeWx4%3D&reserved=0>.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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832149956%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eYimCxl4z7Wr5BLrfcMpvB0EgViCT8UiJwVVIQX7RRc%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832149956%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eYimCxl4z7Wr5BLrfcMpvB0EgViCT8UiJwVVIQX7RRc%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832159946%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=2hyjwsM5AAex96je9i3iNR%2BPTBibAKzxiNaPKfhAqPA%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832159946%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=2hyjwsM5AAex96je9i3iNR%2BPTBibAKzxiNaPKfhAqPA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832169936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JiYeCAqy2U2lNAmHhmKX3uMIYAD6kKl%2FuAtdOyuKfZA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832169936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JiYeCAqy2U2lNAmHhmKX3uMIYAD6kKl%2FuAtdOyuKfZA%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832179936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=FGHSpBfUOL5HYCTVerW%2B8d2GJ0kmu3rMYavtDxAadeA%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832179936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=FGHSpBfUOL5HYCTVerW%2B8d2GJ0kmu3rMYavtDxAadeA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Thanks Bill (everyone) for the information.

For clarification, SDG primarily builds on Apache Geode GA versions (e.g. 1.13.2). This is true for 3rd party libs as well. We rarely, if ever, use milestones or release candidates, much less snapshots, for any non-controlled dependency, in the mainline. This is necessary to always keep SD[G] in a releasable state when/if needed (e.g. critical CVE).

As an exception, we additionally build SDG (master-next) on the most recent 1.14 snapshots (i.e. mainline version +1, e.g. main is set to 1.13 [1] and master-next is set to 1.14 [2], even if an Apache Geode 1.15 branch were cut) to prepare SDG for the next version when it becomes GA so we are ready to upgrade to that version and get it into a release ASAP.

All of this is to say, any changes to support JDK 16 or above, would need to be either in a Geode 1.13.3+ release and/or 1.14 when available for SDG to be fully JDK 16+ compatible.

Thx,
-j


[1] https://github.com/spring-projects/spring-data-geode/blob/main/spring-data-geode/pom.xml#L23
[2] https://github.com/spring-projects/spring-data-geode/blob/master-next/spring-data-geode/pom.xml#L23

________________________________
From: Bill Burcham <bi...@gmail.com>
Sent: Monday, May 10, 2021 10:54 AM
To: dev@geode.apache.org <de...@geode.apache.org>
Cc: user@geode.apache.org <us...@geode.apache.org>
Subject: Re: JDK 16 Support?

John, this doesn't speak to the general question of JDK version support. But the particular stack trace you showed makes me wonder if the fix for GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf eliminated the reflective field access in favor of some simpler down-casting.

On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com>> wrote:
Hi Anthony-

Thank you for the quick reply.

The Spring Data Team is currently looking ahead towards Java 16 when building and running Spring Data examples to get a sense for what works and what doesn't, now that Java 16 is GA along with anticipation for users with questions or problems.

Spring Framework itself aligns and is based on LTS Java versions only, currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely move the baseline to Java 11 or possibly even Java 17, we are not sure which yet.

Just want to share our findings and give advanced notice.

Thanks,
John

________________________________
From: Anthony Baker <ba...@vmware.com>>
Sent: Wednesday, May 5, 2021 8:14 AM
To: user@geode.apache.org<ma...@geode.apache.org> <us...@geode.apache.org>>
Cc: geode <de...@geode.apache.org>>
Subject: Re: JDK 16 Support?

Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832129959%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=0s0zAIHOunv9GSNPbfu%2BelBHAGU6vpaYpC864A9%2FjNA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832139960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Mmudm8ZO%2BkpGzK0lnhzeI%2BNBsOgZEpINeNiAF5MeWx4%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832139960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Mmudm8ZO%2BkpGzK0lnhzeI%2BNBsOgZEpINeNiAF5MeWx4%3D&reserved=0>.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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832139960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Mmudm8ZO%2BkpGzK0lnhzeI%2BNBsOgZEpINeNiAF5MeWx4%3D&reserved=0>.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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832149956%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eYimCxl4z7Wr5BLrfcMpvB0EgViCT8UiJwVVIQX7RRc%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832149956%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eYimCxl4z7Wr5BLrfcMpvB0EgViCT8UiJwVVIQX7RRc%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832159946%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=2hyjwsM5AAex96je9i3iNR%2BPTBibAKzxiNaPKfhAqPA%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832159946%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=2hyjwsM5AAex96je9i3iNR%2BPTBibAKzxiNaPKfhAqPA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- org.apache.geode.InternalGemFireException: unable to retrieve underlying byte buffer
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832169936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JiYeCAqy2U2lNAmHhmKX3uMIYAD6kKl%2FuAtdOyuKfZA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:346)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832169936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JiYeCAqy2U2lNAmHhmKX3uMIYAD6kKl%2FuAtdOyuKfZA%3D&reserved=0>.BufferPool.releaseBuffer(BufferPool.java:310)
-  at org.apache.geode.internal.net<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832179936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=FGHSpBfUOL5HYCTVerW%2B8d2GJ0kmu3rMYavtDxAadeA%3D&reserved=0>.BufferPool.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Forg.apache.geode.internal.net%2F&data=04%7C01%7Cjblum%40vmware.com%7C13ab03b743c34ea809cf08d913dcae47%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637562660832179936%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=FGHSpBfUOL5HYCTVerW%2B8d2GJ0kmu3rMYavtDxAadeA%3D&reserved=0>.BufferPool.getPoolableBuffer(BufferPool.java:343)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by Bill Burcham <bi...@gmail.com>.
John, this doesn't speak to the general question of JDK version support.
But the particular stack trace you showed makes me wonder if the fix for
GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little
bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf
eliminated the reflective field access in favor of some simpler
down-casting.

On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com> wrote:

> Hi Anthony-
>
> Thank you for the quick reply.
>
> The Spring Data Team is currently looking ahead towards Java 16 when
> building and running Spring Data examples to get a sense for what works and
> what doesn't, now that Java 16 is GA along with anticipation for users with
> questions or problems.
>
> Spring Framework itself aligns and is based on LTS Java versions only,
> currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely
> move the baseline to Java 11 or possibly even Java 17, we are not sure
> which yet.
>
> Just want to share our findings and give advanced notice.
>
> Thanks,
> John
>
> ________________________________
> From: Anthony Baker <ba...@vmware.com>
> Sent: Wednesday, May 5, 2021 8:14 AM
> To: user@geode.apache.org <us...@geode.apache.org>
> Cc: geode <de...@geode.apache.org>
> Subject: Re: JDK 16 Support?
>
> Thanks for reporting this John.  The next LTS version of Java (17) is due
> later this year.  I think Geode needs to at least support every LTS version
> of Java and clearly we would need to fix errors like this. Do you see a
> need to support Java 16 now?
>
> Anthony
>
>
> On May 5, 2021, at 7:57 AM, John Blum <jblum@vmware.com<mailto:
> jblum@vmware.com>> wrote:
>
> What is the plan to support Java 16 for Apache Geode?  Timeframe?
>
> Running Apache Geode on a Java 16 Runtime produces errors like the
> following:
>
>
> - 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)<v1>:41001
> for
> 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001
> shared unordered uid=1 local port=53039 remote port=64063,10,main]
> - 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.releaseReceiveBuffer(BufferPool.java:217)
> -  at
> org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
> -  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
> -  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)
> -  ... 5 common frames omitted
> - 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:
> 92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1
> ,5,main]
> - 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.releaseReceiveBuffer(BufferPool.java:217)
> -  at
> org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
> -  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
> -  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)
> -  ... 5 common frames omitted
>
> Regards,
>
> -John
>
>

Re: JDK 16 Support?

Posted by Bill Burcham <bi...@gmail.com>.
John, this doesn't speak to the general question of JDK version support.
But the particular stack trace you showed makes me wonder if the fix for
GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little
bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf
eliminated the reflective field access in favor of some simpler
down-casting.

On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com> wrote:

> Hi Anthony-
>
> Thank you for the quick reply.
>
> The Spring Data Team is currently looking ahead towards Java 16 when
> building and running Spring Data examples to get a sense for what works and
> what doesn't, now that Java 16 is GA along with anticipation for users with
> questions or problems.
>
> Spring Framework itself aligns and is based on LTS Java versions only,
> currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely
> move the baseline to Java 11 or possibly even Java 17, we are not sure
> which yet.
>
> Just want to share our findings and give advanced notice.
>
> Thanks,
> John
>
> ________________________________
> From: Anthony Baker <ba...@vmware.com>
> Sent: Wednesday, May 5, 2021 8:14 AM
> To: user@geode.apache.org <us...@geode.apache.org>
> Cc: geode <de...@geode.apache.org>
> Subject: Re: JDK 16 Support?
>
> Thanks for reporting this John.  The next LTS version of Java (17) is due
> later this year.  I think Geode needs to at least support every LTS version
> of Java and clearly we would need to fix errors like this. Do you see a
> need to support Java 16 now?
>
> Anthony
>
>
> On May 5, 2021, at 7:57 AM, John Blum <jblum@vmware.com<mailto:
> jblum@vmware.com>> wrote:
>
> What is the plan to support Java 16 for Apache Geode?  Timeframe?
>
> Running Apache Geode on a Java 16 Runtime produces errors like the
> following:
>
>
> - 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)<v1>:41001
> for
> 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001
> shared unordered uid=1 local port=53039 remote port=64063,10,main]
> - 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.releaseReceiveBuffer(BufferPool.java:217)
> -  at
> org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
> -  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
> -  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)
> -  ... 5 common frames omitted
> - 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:
> 92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1
> ,5,main]
> - 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.releaseReceiveBuffer(BufferPool.java:217)
> -  at
> org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
> -  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
> -  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)
> -  ... 5 common frames omitted
>
> Regards,
>
> -John
>
>

Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Hi Anthony-

Thank you for the quick reply.

The Spring Data Team is currently looking ahead towards Java 16 when building and running Spring Data examples to get a sense for what works and what doesn't, now that Java 16 is GA along with anticipation for users with questions or problems.

Spring Framework itself aligns and is based on LTS Java versions only, currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely move the baseline to Java 11 or possibly even Java 17, we are not sure which yet.

Just want to share our findings and give advanced notice.

Thanks,
John

________________________________
From: Anthony Baker <ba...@vmware.com>
Sent: Wednesday, May 5, 2021 8:14 AM
To: user@geode.apache.org <us...@geode.apache.org>
Cc: geode <de...@geode.apache.org>
Subject: Re: JDK 16 Support?

Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by John Blum <jb...@vmware.com>.
Hi Anthony-

Thank you for the quick reply.

The Spring Data Team is currently looking ahead towards Java 16 when building and running Spring Data examples to get a sense for what works and what doesn't, now that Java 16 is GA along with anticipation for users with questions or problems.

Spring Framework itself aligns and is based on LTS Java versions only, currently Java 8 with Spring Framework 5.  Spring Framework 6 will likely move the baseline to Java 11 or possibly even Java 17, we are not sure which yet.

Just want to share our findings and give advanced notice.

Thanks,
John

________________________________
From: Anthony Baker <ba...@vmware.com>
Sent: Wednesday, May 5, 2021 8:14 AM
To: user@geode.apache.org <us...@geode.apache.org>
Cc: geode <de...@geode.apache.org>
Subject: Re: JDK 16 Support?

Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by Anthony Baker <ba...@vmware.com>.
Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John


Re: JDK 16 Support?

Posted by Anthony Baker <ba...@vmware.com>.
Thanks for reporting this John.  The next LTS version of Java (17) is due later this year.  I think Geode needs to at least support every LTS version of Java and clearly we would need to fix errors like this. Do you see a need to support Java 16 now?

Anthony


On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com>> wrote:

What is the plan to support Java 16 for Apache Geode?  Timeframe?

Running Apache Geode on a Java 16 Runtime produces errors like the following:


- 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)<v1>:41001 for 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>: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)<v1>:41001 shared unordered uid=1 local port=53039 remote port=64063,10,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted
- 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler:  92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1,5,main]
- 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.releaseReceiveBuffer(BufferPool.java:217)
-  at org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512)
-  at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495)
-  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)
-  ... 5 common frames omitted

Regards,

-John