Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-10003 Support JDK 17 on Geode
  3. GEODE-9393

Apache Geode does not run on Java 16/17

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Blocker
    • Resolution: Won't Fix
    • 1.13.2
    • None
    • core

    Description

      Due to Java 16 tightened restrictions, Apache Geode fails to run on a Java 16 Runtime (JRE).

      Exceptions like the following are thrown:

      - 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
      

      And...

      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)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            jblum John Blum
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: