Kamon icon indicating copy to clipboard operation
Kamon copied to clipboard

Kamon crashes when it's disabled and Kanela loads logback module

Open pavulonx opened this issue 2 years ago • 1 comments

When:

  • kanela agent is loaded statically by -javaagent
  • kamon is disabled by setting kamon.enabled = false
  • kamon-logback is present on classpath

Then: Kamon fails to disable instrumentation, and crashes when trying to log using adviced logger

Steps to mitigate: When kamon.enabled is set to false then kanela.modules.logback.enabled should be set to false as well.

Stacktrace:

Exception in thread "main" java.lang.ExceptionInInitializerError
	at Application.main(Application.scala)
Caused by: java.lang.ClassCastException: class ch.qos.logback.classic.spi.LoggingEvent cannot be cast to class kamon.instrumentation.context.HasContext (ch.qos.logback.classic.spi.LoggingEvent and kamon.instrumentation.context.HasContext are in unnamed module of loader 'app')
	at kamon.instrumentation.logback.AppendLoopOnAppendersAdvice$.enter(LogbackInstrumentation.scala:84)
	at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:47)
	at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:272)
	at ch.qos.logback.classic.Logger.callAppenders(Logger.java:259)
	at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:426)
	at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:386)
	at ch.qos.logback.classic.Logger.error(Logger.java:543)
	at kamon.Init.disableInstrumentation(Init.scala:191)
	at kamon.Init.init(Init.scala:47)
	at kamon.Init.init$(Init.scala:40)
	...

Versions:

  • kamon: 2.6.0
  • kamon-logback: 2.6.0
  • kanela: 1.0.17

pavulonx avatar Feb 17 '23 13:02 pavulonx

i've burn midnight oil on this. pls fix

bwiercinski avatar Aug 17 '23 09:08 bwiercinski