FrankChen021 / bithon

An observability platform mainly for Java
Apache License 2.0
15 stars 4 forks source link

IllegalStateException thrown when instrumenting okhttp3 4.0 and above #619

Closed FrankChen021 closed 11 months ago

FrankChen021 commented 11 months ago
2023-07-28 17:43:20.968 [main] ERROR org.bithon.agent.instrumentation.aop.debug.AopTransformationListener:59 -
                    [bTxId: , bSpanId: , bMode: ]       Failed to transform okhttp3.OkHttpClient$Builder
java.lang.IllegalStateException: Illegal method name class okhttp3.OkHttpClient$Builder for public final okhttp3.OkHttpClient$Builder okhttp3.OkHttpClient$Builder.-addInterceptor(kotlin.jvm.functions.Function1)
    at org.bithon.shaded.net.bytebuddy.dynamic.scaffold.InstrumentedType$Default.validated(InstrumentedType.java:1743)
    at org.bithon.shaded.net.bytebuddy.dynamic.scaffold.MethodRegistry$Default.prepare(MethodRegistry.java:520)
    at org.bithon.shaded.net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.toTypeWriter(RedefinitionDynamicTypeBuilder.java:203)
    at org.bithon.shaded.net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4057)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doTransform(AgentBuilder.java:12106)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:12041)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1800(AgentBuilder.java:11758)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:12441)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:12381)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doPrivileged(AgentBuilder.java)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:11950)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
    at sun.instrument.InstrumentationImpl.retransformClasses0(Native Method)
    at sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:144)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.bithon.shaded.net.bytebuddy.utility.Invoker$Dispatcher.invoke(Unknown Source)
    at org.bithon.shaded.net.bytebuddy.utility.dispatcher.JavaDispatcher$Dispatcher$ForNonStaticMethod.invoke(JavaDispatcher.java:1032)
    at org.bithon.shaded.net.bytebuddy.utility.dispatcher.JavaDispatcher$ProxiedInvocationHandler.invoke(JavaDispatcher.java:1162)
    at org.bithon.shaded.net.bytebuddy.agent.builder.$Proxy22.retransformClasses(Unknown Source)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$RedefinitionStrategy$Collector$ForRetransformation.doApply(AgentBuilder.java:8177)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$RedefinitionStrategy$Collector.apply(AgentBuilder.java:7992)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$RedefinitionStrategy.apply(AgentBuilder.java:5689)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default.doInstall(AgentBuilder.java:11126)
    at org.bithon.shaded.net.bytebuddy.agent.builder.AgentBuilder$Default.installOn(AgentBuilder.java:11044)
    at org.bithon.agent.instrumentation.aop.interceptor.installer.DynamicInterceptorInstaller.install(DynamicInterceptorInstaller.java:96)
    at org.bithon.agent.observability.aop.BeanMethodAopInstaller.lambda$static$0(BeanMethodAopInstaller.java:51)
    at org.bithon.agent.observability.context.AppInstance.setPort(AppInstance.java:84)
    at org.bithon.agent.plugin.tomcat.interceptor.AbstractEndpoint$Start.after(AbstractEndpoint$Start.java:52)
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1392)
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:663)
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1037)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:232)
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282)
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213)
    at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43)
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
    at java.lang.Iterable.forEach(Iterable.java:75)
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:937)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)