[
https://issues.apache.org/jira/browse/CAMEL-16509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-16509.
---------------------------------
Resolution: Fixed
> Incorrect span timing information reported by camel-zipkin when using
> parallel processing with multicast/recipientList
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-16509
> URL: https://issues.apache.org/jira/browse/CAMEL-16509
> Project: Camel
> Issue Type: Bug
> Components: camel-core, camel-zipkin
> Affects Versions: 3.9.0
> Environment:
>
>
> Reporter: Samrat Dhillon
> Priority: Major
> Fix For: 3.7.5, 3.11.0
>
> Attachments: zipkin-spans.txt
>
>
> camel-zipkin reports incorrect span timings when using parallelProcessing
> with recipientList or multicast pattern.
> At the core of the problem is the way camel created copies of Exchange object
> and copies Properties. Although ExchangeCopyHelper will create a new Exchange
> object which can then be safely shared with multiple processors, but the
> operation does not takes into account safe copying of Objects set as
> properties.
> In case of camel-zipkin, ZipkinState is set in the Exchange property. When
> copies of Exchange objects are created the original ZipkinState object ends
> up being copied and shared by multiple copies of Exchange object which
> results in a very messed up information within ZipkinState.
>
> Used the following route to reproduce the problem
> restConfiguration()
> .component("netty-http")
> .host("0.0.0.0")
> .port(8081)
> .bindingMode(RestBindingMode.json);
> rest().get("/demo").produces("text/plain")
> .route().recipientList().method(CamelRoute.class).parallelProcessing();
> from("direct:a")
> .delay(100L)
> .to("mock:c");
> from("direct:b")
> .delay(1000L)
> .to("mock:d");
> which results in a problematic span. The duration in the below span is
> incorrect
> {"traceId":"68ea85894a4f700c","parentId":"68ea85894a4f700c","id":"202973639d6c6b0b","kind":"CLIENT","name":"direct://a","timestamp":1618418759045044,"duration":1011350,"localEndpoint":\{"serviceName":"direct://a","ipv4":"192.168.56.1"},"tags":\{"camel.client.endpoint.url":"direct://b","camel.client.exchange.id":"0A818646BEE6871-0000000000000001","camel.client.exchange.pattern":"InOut"}}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)