dd-trace-js
dd-trace-js copied to clipboard
Protect HttpClientPlugin.error method from undefined spans
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
- [ ] Unit tests.
- [ ] TypeScript definitions.
- [ ] TypeScript tests.
- [ ] API documentation.
- [ ] CircleCI jobs/workflows.
- [ ] Plugin is exported.