`IndyBootstrapDispatcher` cannot be properly loaded in the Resin environment
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- observability
Línea de trabajo
Empieza reproduciendo el fallo con $RESIN_HOME/bin/httpd.sh, los argumentos de la JVM de resin.conf y la configuración de vulns.war. Lee com.caucho.boot.WatchdogProcess#createProcess en resin.jar y la ruta de carga de clases de tree-node de Resin 3; después compara su entrada esperada java/lang/IndyBootstrapDispatcher.class con la ruta del agente sombreado. Se considera terminado cuando Resin carga la clase y la funcionalidad del agente funciona.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
When starting Resin 3 using the provided startup script ($RESIN_HOME/bin/httpd.sh), the runtime is unable to load java.lang.IndyBootstrapDispatcher via the DynamicClassLoader.
After some investigation, I found that the startup script ultimately calls the com.caucho.boot.WatchdogProcess#createProcess method (located in resin.jar) to launch Resin. This method hardcodes the startup argument -Djava.system.class.loader=com.caucho.loader.SystemClassLoader, which replaces the default system class loader.
As a result, when Resin tries to load IndyBootstrapDispatcher, the DynamicClassLoader delegates the loading to SystemClassLoader, which is unable to load it. In Resin 3, the resin.conf file provides a tree-node element to configure special JAR file paths, allowing SystemClassLoader to access the target files. However, the internal implementation is hardcoded to fetch the target entry from the JAR file, like configuredJars.getJarEntry("java/lang/IndyBootstrapDispatcher.class").
The issue is that Elastic has shaded the class, and its actual resource path is represented as agent/bootstrap/java/lang/IndyBootstrapDispatcher.esclazz. This mismatch causes the class loading to fail, leading to malfunctioning agent functionality.
All the above is specific to Resin 3. Resin 4 might have the same problem, but I haven't tested it yet.
Steps to reproduce
- In the resin.conf file, add the following configuration
<jvm-arg>-javaagent:/path/to/elastic-apm-agent.jar</jvm-arg>
<jvm-arg>-Delastic.apm.log_level=DEBUG</jvm-arg>
<jvm-arg>-Delastic.apm.log_file=/path/to/logs/elastic-apm-agent.log</jvm-arg>
- download the vulns.jar to
$RESIN_HOME/webapps - RUN
$RESIN_HOME/bin/httpd.sh start - Access
http://localhost:7040/vulnsthrough your browser
- Lenguaje dominante
- Java
- Estrellas
- 593
- Forks
- 338
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 13
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de elastic/apm-agent-java
-
Spring MVC View instrumentation incorrectly matches static render overloads (EasyPOI)Posiblemente ocupada @VelpulaGangavardhan la tomó hace 4 días. Abiertoagent-java community triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
elastic/apm-agent-java#4594 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
agent-java
Dificultad 2/5 1-2 días Aptitud para principiantes 62/100
elastic/apm-agent-java#2844 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Improve docs and add error log related to illegal activation of transactionPosiblemente ocupada @AzazelSensei la tomó hace 42 días. Abiertodocs good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
elastic/apm-agent-java#850 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Log4j 2.7 log correlation calls ThreadContext.removeAll, which was introduced in 2.8Posiblemente ocupada @Anshuman-Prakash la tomó hace 2 días. Abiertoagent-java community triage
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
elastic/apm-agent-java#4593 ·
Los mantenedores suelen responder en 1 día
-
agent-java community triage
elastic/apm-agent-java#4573 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de elastic/apm-agent-java
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
QuiltMC/update-quilt-meta#28 ·
-
area/kotlin
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Tell us about your use cases!Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Large page[number] overflows the computed offset and returns the wrong pagePosiblemente ocupada @auraseb la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día