-
Notifications
You must be signed in to change notification settings - Fork 784
Description
Hi,
I've been playing with Sleuth, Zipkin and Kafka a bit lately, and noticed some exceptions when using relatively high request volumes.
I have some demo code here: https://github.com/barrycommins/zipkindemo/tree/master
It's just a simple Spring Boot web app with one @RestController.
Traces are sent to the Zipkin server with Kafka as the transport
Under normal load, everything looks fine:

However, under higher load (just simulated with JMeter), I quickly start seeing java.lang.IllegalStateException: Queue full
Here's the stacktrace:
java.lang.IllegalStateException: Queue full
at java.util.AbstractQueue.add(AbstractQueue.java:98) ~[na:1.8.0_60]
at org.springframework.cloud.sleuth.stream.StreamSpanReporter.report(StreamSpanReporter.java:86) ~[spring-cloud-sleuth-stream-1.0.9.RELEASE.jar:1.0.9.RELEASE]
at org.springframework.cloud.sleuth.trace.DefaultTracer.close(DefaultTracer.java:123) ~[spring-cloud-sleuth-core-1.0.9.RELEASE.jar:1.0.9.RELEASE]
at org.springframework.cloud.sleuth.instrument.web.TraceHandlerInterceptor.afterCompletion(TraceHandlerInterceptor.java:153) ~[spring-cloud-sleuth-core-1.0.9.RELEASE.jar:1.0.9.RELEASE]
at org.springframework.web.servlet.HandlerExecutionChain.triggerAfterCompletion(HandlerExecutionChain.java:170) ~[spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1055) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) [tomcat-embed-core-8.5.5.jar:8.5.5]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]`
The traces then don't seem to be closed normally:

I guess this could be related to #378 ?
Is there any way to handle this, or is the solution to just reduce the sample rate?
It doesn't seem to be an issue when sending traces to Zipkin via HTTP.
Thanks