trace_methods needs some definition at startup or redefining later fails
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- observability-sre
Línea de trabajo
Comienza con TraceMethodInstrumentation$TraceMethodAdvice y sigue el fallo a través de IndyBootstrap.java y ElasticApmAgent.java, especialmente la búsqueda de la correspondencia que se muestra en el stack trace. Reproduce el problema con trace_methods ausente al inicio y, después, establece elastic.apm.trace_methods tras 30 segundos. Se considera terminado cuando la configuración dinámica funciona sin un marcador de posición al inicio y los métodos del paquete seleccionado comienzan a producir transacciones después de la redefinición.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
trace_methods is dynamic, but it looks like it needs to be defined with SOMETHING at startup, then it can successfully be redefined. But if not defined at all at startup, the redefinition fails with mapping errors
java.lang.IllegalStateException: There's no mapping for key co.elastic.apm.agent.tracemethods.TraceMethodInstrumentation$TraceMethodAdvice
Steps to reproduce
Do NOT define trace_methods at startup (ie it should be absent from properties and config files), then sometime after startup define it, eg
new Thread(() -> {
try {Thread.sleep(30_000L);} catch (InterruptedException e) {}
System.setProperty("elastic.apm.trace_methods", "somepackage.*");
}).start();
Expected behavior
For that example, all methods in somepackage should produce no transactions until about 30 seconds after startup, when it should start producing transactions for any method executed in somepackage
Debug logs
2023-08-21 14:48:06,614 [Thread-16] ERROR co.elastic.apm.agent.bci.IndyBootstrap - There's no mapping for key co.elastic.apm.agent.tracemethods.TraceMethodInstrumentation$TraceMethodAdvice
java.lang.IllegalStateException: There's no mapping for key co.elastic.apm.agent.tracemethods.TraceMethodInstrumentation$TraceMethodAdvice
at co.elastic.apm.agent.bci.ElasticApmAgent.getInstrumentationClassLoader(ElasticApmAgent.java:946) ~[elastic-apm-agent-1.38.1-SNAPSHOT.jar:1.38.1-SNAPSHOT]
at co.elastic.apm.agent.bci.IndyBootstrap.internalBootstrap(IndyBootstrap.java:416) ~[elastic-apm-agent-1.38.1-SNAPSHOT.jar:1.38.1-SNAPSHOT]
at co.elastic.apm.agent.bci.IndyBootstrap.bootstrap(IndyBootstrap.java:389) ~[elastic-apm-agent-1.38.1-SNAPSHOT.jar:1.38.1-SNAPSHOT]
at jdk.internal.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at java.lang.IndyBootstrapDispatcher.bootstrap(IndyBootstrapDispatcher.java:61) ~[?:?]
at java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:147) ~[?:?]
at java.lang.invoke.CallSite.makeSite(CallSite.java:315) ~[?:?]
at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:281) ~[?:?]
at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:271) ~[?:?]
at wimtjgf.ScoreUI.getGcTime(ScoreUI.java:215) ~[bin/:?]
at wimtjgf.ScoreUI.lambda$2(Unknown Source) ~[bin/:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Workaround
Add a dummy trace_methods definition at startup, eg -Delastic.apm.trace_methods=nothing.at.all then redefine dynamically as desired
- Lenguaje dominante
- Java
- Estrellas
- 593
- Forks
- 338
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 9
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
-
agent-java community triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
elastic/apm-agent-java#4594 ·
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 37 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
-
agent-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
-
area/plugin good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
kestra-io/plugin-soda#137 ·
-
area/plugin good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
kestra-io/plugin-aws#816 ·
Los mantenedores suelen responder en 2 días
-
area/plugin good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
kestra-io/plugin-kestra#200 ·
Los mantenedores suelen responder en 1 día
-
bug untriaged
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
opensearch-project/search-relevance#618 ·
Los mantenedores suelen responder en 3 días
-
[Studio][Bug] Invalid ACL wildcard entries inflate the risk scorePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/rocketmq-dashboard#6716 ·
Los mantenedores suelen responder en 3 días