dd-trace-js icon indicating copy to clipboard operation
dd-trace-js copied to clipboard

Protect HttpClientPlugin.error method from undefined spans

Open iunanua opened this issue 1 year ago • 8 comments

What does this PR do?

Check if span is undefined in HttpClientPlugin.error before using it.

Motivation

I see app crashes after socket timeouts:

dd-trace-js/packages/datadog-plugin-http/src/client.js:102
      span.addTags({
           ^

TypeError: Cannot read properties of undefined (reading 'addTags')
    at HttpClientPlugin.error (dd-trace-js/packages/datadog-plugin-http/src/client.js:102:12)
    at dd-trace-js/packages/dd-trace/src/plugins/tracing.js:73:22
    at Subscription._handler (dd-trace-js/packages/dd-trace/src/plugins/plugin.js:14:9)
    at Channel.publish (node:diagnostics_channel:54:9)
    at ClientRequest.req.emit (dd-trace-js/packages/datadog-instrumentations/src/http/client.js:91:30)
    at Socket.socketCloseListener (node:_http_client:420:11)
    at Socket.emit (node:events:402:35)
    at Socket.emit (dd-trace-js/packages/datadog-instrumentations/src/net.js:61:25)
    at TCP.<anonymous> (node:net:687:12)
    at TCP.callbackTrampoline (node:internal/async_hooks:130:17)   

Plugin Checklist

Additional Notes

iunanua avatar Aug 08 '23 13:08 iunanua