Environment
- Liferay DXP 7.3, 7.4 and Liferay DXP 2023/2024 Quarterly Release Self-Hosted environments operating with Elasticsearch version 7.17.19 with JDK 22.
- Elasticsearch version 7.17.19 , versions 8.13.0/8.13.11 - with JDK 22.
Symptoms
1) Elasticsearch could abruptly stop with JDK 22
One or more Elasticsearch nodes could abruptly stop resulting in the following symptoms (list non-exhaustive):
- Failed upgrade
- Unable to start Elasticsearch node or node boot-looping
- Failed indexing / search requests
- Unassigned shards (e.g yellow/red cluster)
- Possible data corruption (Strange Segment State after encoutering JDK22 bug)
2) Elasticsearch node would report a fatal error related to Java class Ljdk.internal.vm.FillerArray . For example:
[instance-0000000027] fatal error in thread [elasticsearch[instance-0000000027][refresh][T#4]], exiting
java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map
at org.elasticsearch.index.engine.LiveVersionMap.pruneTombstones(LiveVersionMap.java:437) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.engine.InternalEngine.pruneDeletedTombstones(InternalEngine.java:2378) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.engine.InternalEngine.maybePruneDeletes(InternalEngine.java:1924) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.shard.IndexShard.lambda$scheduledRefresh$47(IndexShard.java:3940) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.action.ActionListener.run(ActionListener.java:356) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.shard.IndexShard.scheduledRefresh(IndexShard.java:3915) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.IndexService.maybeRefreshEngine(IndexService.java:998) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.IndexService$AsyncRefreshTask.runInternal(IndexService.java:1134) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractAsyncTask.run(AbstractAsyncTask.java:137) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:917) ~[elasticsearch-8.13.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1570) ~[?:?]
[instance-0000000027] fatal error in thread [elasticsearch[instance-0000000027][refresh][T#4]], exiting java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map at org.elasticsearch.index.engine.LiveVersionMap.pruneTombstones(LiveVersionMap.java:437) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.engine.InternalEngine.pruneDeletedTombstones(InternalEngine.java:2378) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.engine.InternalEngine.maybePruneDeletes(InternalEngine.java:1924) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.shard.IndexShard.lambda$scheduledRefresh$47(IndexShard.java:3940) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.action.ActionListener.run(ActionListener.java:356) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.shard.IndexShard.scheduledRefresh(IndexShard.java:3915) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.IndexService.maybeRefreshEngine(IndexService.java:998) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.IndexService$AsyncRefreshTask.runInternal(IndexService.java:1134) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.common.util.concurrent.AbstractAsyncTask.run(AbstractAsyncTask.java:137) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:917) ~[elasticsearch-8.13.1.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.lang.Thread.run(Thread.java:1570) ~[?:?]
[instance-0000000027] fatal error in thread [elasticsearch[instance-0000000027][refresh][T#4]], exiting java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map at org.elasticsearch.index.engine.LiveVersionMap.pruneTombstones(LiveVersionMap.java:437) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.engine.InternalEngine.pruneDeletedTombstones(InternalEngine.java:2378) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.engine.InternalEngine.maybePruneDeletes(InternalEngine.java:1924) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.shard.IndexShard.lambda$scheduledRefresh$47(IndexShard.java:3940) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.action.ActionListener.run(ActionListener.java:356) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.shard.IndexShard.scheduledRefresh(IndexShard.java:3915) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.IndexService.maybeRefreshEngine(IndexService.java:998) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.IndexService$AsyncRefreshTask.runInternal(IndexService.java:1134) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.common.util.concurrent.AbstractAsyncTask.run(AbstractAsyncTask.java:137) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:917) ~[elasticsearch-8.13.1.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.lang.Thread.run(Thread.java:1570) ~[?:?]
[instance-0000000027] fatal error in thread [elasticsearch[instance-0000000027][refresh][T#4]], exiting java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map at org.elasticsearch.index.engine.LiveVersionMap.pruneTombstones(LiveVersionMap.java:437) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.engine.InternalEngine.pruneDeletedTombstones(InternalEngine.java:2378) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.engine.InternalEngine.maybePruneDeletes(InternalEngine.java:1924) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.shard.IndexShard.lambda$scheduledRefresh$47(IndexShard.java:3940) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.action.ActionListener.run(ActionListener.java:356) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.shard.IndexShard.scheduledRefresh(IndexShard.java:3915) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.IndexService.maybeRefreshEngine(IndexService.java:998) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.index.IndexService$AsyncRefreshTask.runInternal(IndexService.java:1134) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.common.util.concurrent.AbstractAsyncTask.run(AbstractAsyncTask.java:137) ~[elasticsearch-8.13.1.jar:?] at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:917) ~[elasticsearch-8.13.1.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.lang.Thread.run(Thread.java:1570) ~[?:?]
3) As the problem can happen in different code paths, here are some snippets of stack traces observed so far:
java.lang.ClassCastException: class Ljdk.internal.vm.FillerArray; cannot be cast to class
java.nio.ByteBuffer (Ljdk.internal.vm.FillerArray; and java.nio.ByteBuffer are in module java.base of loader 'bootstrap')
at io.netty.buffer@4.1.107.Final/io.netty.buffer.PoolChunk.allocate(PoolChunk.java:354)
at io.netty.buffer@4.1.107.Final/io.netty.buffer.PoolChunkList.allocate(PoolChunkList.java:108)
at io.netty.buffer@4.1.107.Final/io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:204)
...
java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.concurrent.locks.Lock
at org.elasticsearch.common.util.concurrent.ReleasableLock.acquire(ReleasableLock.java:43) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.translog.Translog.add(Translog.java:578) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.index(InternalEngine.java:1223) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.shard.IndexShard.index(IndexShard.java:1072) ~[elasticsearch-8.13.0.jar:?]
...
java.lang.ClassCastException: class Ljdk.internal.vm.FillerArray; cannot be cast to class org.elasticsearch.index.engine.LiveVersionMap$VersionLookup (Ljdk.internal.vm.FillerArray; is in module java.base of loader 'bootstrap'; org.elasticsearch.index.engine.LiveVersionMap$VersionLookup is in module org.elasticsearch.server@8.14.0 of loader 'app')
at org.elasticsearch.stateless@8.14.0/co.elastic.elasticsearch.stateless.engine.StatelessLiveVersionMapArchive.getRamBytesUsed(StatelessLiveVersionMapArchive.java:156)
at org.elasticsearch.server@8.14.0/org.elasticsearch.index.engine.LiveVersionMap.ramBytesUsedForRefresh(LiveVersionMap.java:483)
at org.elasticsearch.server@8.14.0/org.elasticsearch.index.engine.InternalEngine.getIndexBufferRAMBytesUsed(InternalEngine.java:2573)
at org.elasticsearch.server@8.14.0/org.elasticsearch.index.shard.IndexShard.getIndexBufferRAMBytesUsed(IndexShard.java:2355)
...
java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map
at org.apache.lucene.core@9.10.0/org.apache.lucene.index.ReadersAndUpdates.getNumDVUpdates(ReadersAndUpdates.java:168)
at org.apache.lucene.core@9.10.0/org.apache.lucene.index.ReaderPool.anyDocValuesChanges(ReaderPool.java:384)
at org.apache.lucene.core@9.10.0/org.apache.lucene.index.IndexWriter.nrtIsCurrent(IndexWriter.java:5776)
at org.apache.lucene.core@9.10.0/org.apache.lucene.index.StandardDirectoryReader.isCurrent(StandardDirectoryReader.java:455)
at org.apache.lucene.core@9.10.0/org.apache.lucene.index.FilterDirectoryReader.isCurrent(FilterDirectoryReader.java:133)
at org.elasticsearch.server@8.14.0/org.elasticsearch.index.engine.Engine.refreshNeeded(Engine.java:1093)
...
java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map
at org.elasticsearch.index.engine.LiveVersionMap.pruneTombstones(LiveVersionMap.java:437) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.engine.InternalEngine.pruneDeletedTombstones(InternalEngine.java:2378) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.engine.InternalEngine.maybePruneDeletes(InternalEngine.java:1924) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.shard.IndexShard.lambda$scheduledRefresh$47(IndexShard.java:3940) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.action.ActionListener.run(ActionListener.java:356) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.shard.IndexShard.scheduledRefresh(IndexShard.java:3915) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.IndexService.maybeRefreshEngine(IndexService.java:998) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.index.IndexService$AsyncRefreshTask.runInternal(IndexService.java:1134) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractAsyncTask.run(AbstractAsyncTask.java:137) ~[elasticsearch-8.13.1.jar:?]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:917) ~[elasticsearch-8.13.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1570) ~[?:?]
java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Map
at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.terms(PerFieldPostingsFormat.java:353) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.CodecReader.terms(CodecReader.java:132) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.FilterLeafReader.terms(FilterLeafReader.java:415) ~[lucene-core-9.10.0.jar:?]
at org.elasticsearch.common.lucene.uid.PerThreadIDVersionAndSeqNoLookup.<init>(PerThreadIDVersionAndSeqNoLookup.java:68) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.lucene.uid.PerThreadIDVersionAndSeqNoLookup.<init>(PerThreadIDVersionAndSeqNoLookup.java:111) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.lucene.uid.VersionsAndSeqNoResolver.getLookupState(VersionsAndSeqNoResolver.java:66) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.lucene.uid.VersionsAndSeqNoResolver.timeSeriesLoadDocIdAndVersion(VersionsAndSeqNoResolver.java:140) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.resolveDocVersion(InternalEngine.java:1021) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.planIndexingAsPrimary(InternalEngine.java:1333) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.indexingStrategyForOperation(InternalEngine.java:1310) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.index(InternalEngine.java:1172) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.shard.IndexShard.index(IndexShard.java:1072) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.shard.IndexShard.applyIndexOperation(IndexShard.java:997) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.shard.IndexShard.applyIndexOperationOnPrimary(IndexShard.java:915) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.bulk.TransportShardBulkAction.executeBulkItemRequest(TransportShardBulkAction.java:378) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.bulk.TransportShardBulkAction$2.doRun(TransportShardBulkAction.java:235) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:305) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.bulk.TransportShardBulkAction.dispatchedShardOperationOnPrimary(TransportShardBulkAction.java:151) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.bulk.TransportShardBulkAction.dispatchedShardOperationOnPrimary(TransportShardBulkAction.java:79) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.support.replication.TransportWriteAction$1.doRun(TransportWriteAction.java:216) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:984) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) ~[elasticsearch-8.13.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1570) ~[?:?]
java.lang.IncompatibleClassChangeError: Class Ljdk.internal.vm.FillerArray; does not implement the requested interface java.util.Collection
at org.apache.lucene.index.ReadersAndUpdates.writeFieldUpdates(ReadersAndUpdates.java:554) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.ReaderPool.writeAllDocValuesUpdates(ReaderPool.java:251) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.IndexWriter.writeReaderPool(IndexWriter.java:3982) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:598) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:381) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:355) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:345) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.FilterDirectoryReader.doOpenIfChanged(FilterDirectoryReader.java:112) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:170) ~[lucene-core-9.10.0.jar:?]
at org.elasticsearch.index.engine.ElasticsearchReaderManager.refreshIfNeeded(ElasticsearchReaderManager.java:48) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.ElasticsearchReaderManager.refreshIfNeeded(ElasticsearchReaderManager.java:27) ~[elasticsearch-8.13.0.jar:?]
at org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:167) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.search.ReferenceManager.maybeRefreshBlocking(ReferenceManager.java:240) ~[lucene-core-9.10.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine$ExternalReaderManager.refreshIfNeeded(InternalEngine.java:461) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine$ExternalReaderManager.refreshIfNeeded(InternalEngine.java:441) ~[elasticsearch-8.13.0.jar:?]
at org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:167) ~[lucene-core-9.10.0.jar:?]
at org.apache.lucene.search.ReferenceManager.maybeRefresh(ReferenceManager.java:213) ~[lucene-core-9.10.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.refresh(InternalEngine.java:2047) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.lambda$maybeRefresh$8(InternalEngine.java:2020) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.ActionListener.completeWith(ActionListener.java:270) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.engine.InternalEngine.maybeRefresh(InternalEngine.java:2020) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.shard.IndexShard.lambda$scheduledRefresh$47(IndexShard.java:3935) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.action.ActionListener.run(ActionListener.java:356) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.shard.IndexShard.scheduledRefresh(IndexShard.java:3915) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.IndexService.maybeRefreshEngine(IndexService.java:998) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.index.IndexService$AsyncRefreshTask.runInternal(IndexService.java:1134) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractAsyncTask.run(AbstractAsyncTask.java:137) ~[elasticsearch-8.13.0.jar:?]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:917) ~[elasticsearch-8.13.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1570) ~[?:?]
Cause
The issue is being investigated by Elastic in java.lang.ClassCastException: class Ljdk.internal.vm.FillerArray; cannot be cast to class, after upgrading to 8.13.0.
The same issue is linked to this JDK issue which is currently under investigation: java.lang.ClassCastException: class Ljdk.internal.vm.FillerArray; cannot be cast to class java.nio.ByteBuffer (Ljdk.internal.vm.FillerArray; and java.nio.ByteBuffer are in module java.base of loader 'bootstrap').
Workaround
- For Liferay Self-hosted environments: users can install and use JDK version 21.0.2 instead (see: Java (JVM) Verssion). A resolution is available (see below).
- For Liferay Saas and Paas environments: No action required.
Resolution
Elasticsearch 7.17.20 will be bundled with JDK 21.0.2 (Downgrade the bundled JDK to JDK 21.0.2).
1 Elasticsearch 8.13.x is currently not a compatible search engine version for Liferay environments. The compatibilty testing is expected to take place in 2024 Q2.
Elastic, Elasticsearch, and X-Pack are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.