elastic / elasticsearch

Free and Open Source, Distributed, RESTful Search Engine
https://www.elastic.co/products/elasticsearch
Other
69.68k stars 24.66k forks source link

JVM crash in constant pool lookup while loading class #107861

Open rjernst opened 5 months ago

rjernst commented 5 months ago

Elasticsearch Version

main

Installed Plugins

No response

Java Version

21.0.2+13

OS Version

Ubuntu 20.04 (aarch64)

Problem Description

A CI run of a java rest test caused a JVM segfault.

Excerpt from hs_err:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000ffff8a171220, pid=44806, tid=47376
#
# JRE version: OpenJDK Runtime Environment (21.0.2+13) (build 21.0.2+13-58)
# Java VM: OpenJDK 64-Bit Server VM (21.0.2+13-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V  [libjvm.so+0xccf220]  SystemDictionary::resolve_or_fail(Symbol*, Handle, Handle, bool, JavaThread*)+0x20
...
---------------  T H R E A D  ---------------

Current thread (0x0000fffe3c002e00):  JavaThread "elasticsearch[javaRestTest-0][management][T#3]" daemon [_thread_in_vm, id=47376, stack(0x0000fffe37f00000,0x0000fffe38000000) (1024K)]

Stack: [0x0000fffe37f00000,0x0000fffe38000000],  sp=0x0000fffe37ffa910,  free space=1002k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xccf220]  SystemDictionary::resolve_or_fail(Symbol*, Handle, Handle, bool, JavaThread*)+0x20
V  [libjvm.so+0x5c5870]  ConstantPool::klass_at_impl(constantPoolHandle const&, int, JavaThread*)+0x150
V  [libjvm.so+0x5c65c4]  ConstantPool::klass_ref_at(int, Bytecodes::Code, JavaThread*)+0x80
V  [libjvm.so+0xa31468]  LinkInfo::LinkInfo(constantPoolHandle const&, int, methodHandle const&, Bytecodes::Code, JavaThread*)+0x48
V  [libjvm.so+0xa33efc]  LinkResolver::resolve_method_statically(Bytecodes::Code, constantPoolHandle const&, int, JavaThread*)+0x4c
V  [libjvm.so+0x42d108]  Bytecode_invoke::static_target(JavaThread*)+0x84
V  [libjvm.so+0xc2b720]  SharedRuntime::find_callee_info_helper(vframeStream&, Bytecodes::Code&, CallInfo&, JavaThread*)+0x400
V  [libjvm.so+0xc2b88c]  SharedRuntime::find_callee_info(Bytecodes::Code&, CallInfo&, JavaThread*)+0x68
V  [libjvm.so+0xc2b9b4]  SharedRuntime::resolve_sub_helper(bool, bool, JavaThread*)+0xd0
V  [libjvm.so+0xc2bb8c]  SharedRuntime::resolve_helper(bool, bool, JavaThread*)+0x3c
V  [libjvm.so+0xc2c07c]  SharedRuntime::resolve_opt_virtual_call_C(JavaThread*)+0x3c
v  ~RuntimeStub::resolve_opt_virtual_call 0x0000ffff73f61210
C  0x0000fffe3c002e00
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  ~RuntimeStub::resolve_opt_virtual_call 0x0000ffff73f61210
J 8588 c2 java.net.FactoryURLClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class; java.base@21.0.2 (40 bytes) @ 0x0000ffff74ec1230 [0x0000ffff74ebba80+0x00000000000057b0]
J 5436 c2 java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class; java.base@21.0.2 (7 bytes) @ 0x0000ffff74a475c8 [0x0000ffff74a47580+0x0000000000000048]
v  ~StubRoutines::call_stub 0x0000ffff73f25140
j  org.elasticsearch.ingest.attachment.AttachmentProcessor$Factory.create(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lorg/elasticsearch/ingest/attachment/AttachmentProcessor;+7
j  org.elasticsearch.ingest.attachment.AttachmentProcessor$Factory.create(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lorg/elasticsearch/ingest/Processor;+6
j  org.elasticsearch.ingest.ConfigurationUtils.readProcessor(Ljava/util/Map;Lorg/elasticsearch/script/ScriptService;Ljava/lang/String;Ljava/util/Map;)Lorg/elasticsearch/ingest/Processor;+117 org.elasticsearch.server@8.15.0-SNAPSHOT
j  org.elasticsearch.ingest.ConfigurationUtils.readProcessor(Ljava/util/Map;Lorg/elasticsearch/script/ScriptService;Ljava/lang/String;Ljava/lang/Object;)Lorg/elasticsearch/ingest/Processor;+14 org.elasticsearch.server@8.15.0-SNAPSHOT
j  org.elasticsearch.ingest.ConfigurationUtils.readProcessorConfigs(Ljava/util/List;Lorg/elasticsearch/script/ScriptService;Ljava/util/Map;)Ljava/util/List;+130 org.elasticsearch.server@8.15.0-SNAPSHOT
j  org.elasticsearch.ingest.Pipeline.create(Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Lorg/elasticsearch/script/ScriptService;)Lorg/elasticsearch/ingest/Pipeline;+55 org.elasticsearch.server@8.15.0-SNAPSHOT
...

Log files hs_err_pid44806.log gc.log javaRestTest_server.json

Gradle build https://gradle-enterprise.elastic.co/s/hoyucrcwdbnei

Steps to Reproduce

No reproduction yet

Logs (if relevant)

No response

elasticsearchmachine commented 5 months ago

Pinging @elastic/es-core-infra (Team:Core/Infra)