I have two services I am tracing through, a Node.js server on top of a Java backend. The IDs being sent to the Java backend by the Node client are periodically too large for dd-trace-java opentracing to parse into a Long.
Exception with no mapped status code
java.lang.NumberFormatException: For input string: "9772945757313177262"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_162]
at java.lang.Long.parseLong(Long.java:592) ~[na:1.8.0_162]
at java.lang.Long.parseLong(Long.java:631) ~[na:1.8.0_162]
at datadog.opentracing.propagation.HTTPCodec.extract(HTTPCodec.java:60) ~[com.datadoghq.dd-trace-ot-0.8.0.jar:na]
at datadog.opentracing.propagation.HTTPCodec.extract(HTTPCodec.java:15) ~[com.datadoghq.dd-trace-ot-0.8.0.jar:na]
at datadog.opentracing.DDTracer.extract(DDTracer.java:249) ~[com.datadoghq.dd-trace-ot-0.8.0.jar:na]
at io.opentracing.util.GlobalTracer.extract(GlobalTracer.java:143) ~[io.opentracing.opentracing-util-0.31.0.jar:na]
And here's the stack trace from my Node.js server, along with the ID's as they are in the DatadogSpan object.
TraceId: 1455231796184695300, SpanId: 9772945757313178000, ParentId: 15993920359388260000
{ error: 'java.lang.NumberFormatException',
message: 'For input string: "9772945757313177262"' }
Error: {"error":"java.lang.NumberFormatException","message":"For input string: \"9772945757313177262\""}
at /opt/app/lib/requestutils.js:85:13
at propagateAslWrapper (/tmp/node_modules/async-listener/index.js:502:23)
at /tmp/node_modules/async-listener/glue.js:188:31
at proxyWrapper (/tmp/node_modules/async-listener/index.js:511:29)
at /tmp/node_modules/async-listener/index.js:539:70
at /tmp/node_modules/async-listener/glue.js:188:31
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
@kappj I am investigating the issue to figure out if the problem is on the Java side or the JavaScript side since those are valid unsigned longs, but invalid signed longs. I'll let you know as soon as a fix is in the works!
Confirmed the trace ID and span ID should be signed longs. I will update the API documentation as well.
Released in v0.2.1.
Thanks so much!