Description
Description
I am experiencing a very strange problem,
thats not easy to reproduce.
However I was able to capture a Thread Dump via JProfile.
With the combination of :
-
Spring Boot 3-RC1 (also latest Snapshot from 7th November)
-
Jaeger Tracing inside Docker or Kubernetes
-
Prometheus
-
Zipkin
-
Data JPA
The Application will occasionally deadlock during bootstrap.
Just after the initialization of "ServletWebServerApplicationContext"
Removing one of the Dependencies will remedy the situation.
The stacktrace below shows that the problem seems to occur when prometheus triggers the autoconfig of the tracer.
However this only happens when combined with JPA.
Full Stacktrace is attached as well as the gradle build file.
Unfortunately I was able to create a downsized application that is able to reproduce the error.
So that is all the information i can provide for now
Question
I also noticed, that the rebuild Micrometer Tracing behaves where differently from the old sleuth implementation.
The traces include a lot of low level information (e.g. Spring Security Filter Chain).
And I was also not able to get complete spans across multiple applications, just seperate ones.
Will there be a fix and/or updated documentation with the Release of 3.0 GA ?
Thanks in advance
Thread main:
at org.springframework.util.function.SingletonSupplier.get() (line: 94)
at org.springframework.util.function.SingletonSupplier.obtain() (line: 115)
at org.springframework.boot.actuate.autoconfigure.tracing.exemplars.ExemplarsAutoConfiguration$LazyTracingSpanContextSupplier.currentSpan() (line: 85)
at org.springframework.boot.actuate.autoconfigure.tracing.exemplars.ExemplarsAutoConfiguration$LazyTracingSpanContextSupplier.isSampled() (line: 80)
at io.prometheus.client.exemplars.DefaultExemplarSampler.doSample(double, io.prometheus.client.exemplars.Exemplar) (line: 46)
at io.prometheus.client.exemplars.DefaultExemplarSampler.sample(double, io.prometheus.client.exemplars.Exemplar) (line: 34)