-
Notifications
You must be signed in to change notification settings - Fork 351
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Tracer Version(s)
5.68.0
Node.js Version(s)
22.14.0
Bug Report
The minimal reproduction shows an access on undefined bug in websocket plugin.
Versions:
{
"@opentelemetry/api": "1.9.0",
"dd-trace": "^5.68.0",
"ws": "^8.18.3"
}Reproduction Code
const dd = require("dd-trace");
dd.init();
const WebSocket = require("ws");
const wss = new WebSocket.Server({ port: 8080 });
wss.on("connection", function connection(ws) {
ws.send("1");
setTimeout(() => wss.close(), 1000);
});
setTimeout(() => {
const ws = new WebSocket("ws://localhost:8080");
ws.on("open", () => {
setTimeout(() => ws.close(), 500);
});
}, 1000);Error Logs
$ DD_TRACE_DEBUG=true node tracingws.js
Inject into carrier: {"x-datadog-trace-id":"5359502531044350362","x-datadog-parent-id":"5359502531044350362","x-datadog-sampling-priority":"1","traceparent":"00-68de21fe000000004a60c727f7b4999a-4a60c727f7b4999a-01","tracestate":"dd=t.dm:-0;t.tid:68de21fe00000000;s:1;p:4a60c727f7b4999a"}.
Encoding payload: [{"trace_id":"64a8fda277e55a29","span_id":"64a8fda277e55a29","parent_id":"0000000000000000","name":"web.request","resource":"GET /","error":0,"meta":{"_dd.p.tid":"68de21fe00000000","_dd.p.dm":"-0","service":"testdd","version":"1.0.0","runtime-id":"58c9a803-510f-4d3c-a762-9968c56f9518","_dd.rc.client_id":"a2c7abfb-3562-4cb9-8225-065638c68150","component":"ws","span.kind":"server","http.upgraded":"websocket","http.method":"GET","http.url":"ws://localhost:8080/","http.status_code":"101","_dd.integration":"ws","language":"javascript"},"metrics":{"_dd.agent_psr":1,"_dd.top_level":1,"_dd.measured":1,"process_id":79237,"_sampling_priority_v1":1},"start":1759388158387002000,"duration":1563232,"links":[],"service":"testdd","type":"websocket"}]
Error: Error in plugin handler:
at wrappedHandler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:83:16)
at Subscription._handler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:15:9)
at Channel.publish (node:diagnostics_channel:150:9)
at node:diagnostics_channel:337:13
at run (node:diagnostics_channel:162:14)
at DatadogStorage.run (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-core/src/storage.js:79:22)
at node:diagnostics_channel:94:18
at Channel.runStores (node:diagnostics_channel:171:12)
at TracingChannel.traceSync (node:diagnostics_channel:327:18)
at WebSocket.send (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-instrumentations/src/ws.js:48:20)
TypeError: Cannot read properties of undefined (reading 'addLink')
at WSProducerPlugin.end (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-plugin-ws/src/producer.js:54:16)
at /Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/tracing.js:77:22
at wrappedHandler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:81:24)
at Subscription._handler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:15:9)
at Channel.publish (node:diagnostics_channel:150:9)
at node:diagnostics_channel:337:13
at run (node:diagnostics_channel:162:14)
at DatadogStorage.run (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-core/src/storage.js:79:22)
at node:diagnostics_channel:94:18
at Channel.runStores (node:diagnostics_channel:171:12)
Disabling plugin: undefined
Encoding payload: [{"trace_id":"4a60c727f7b4999a","span_id":"4a60c727f7b4999a","parent_id":"0000000000000000","name":"http.request","resource":"GET","error":0,"meta":{"_dd.p.tid":"68de21fe00000000","_dd.p.dm":"-0","service":"testdd","version":"1.0.0","runtime-id":"58c9a803-510f-4d3c-a762-9968c56f9518","_dd.rc.client_id":"a2c7abfb-3562-4cb9-8225-065638c68150","component":"http","span.kind":"client","http.method":"GET","http.url":"http://localhost:8080/","out.host":"localhost","http.status_code":"101","_dd.integration":"http","language":"javascript"},"metrics":{"_dd.agent_psr":1,"_dd.top_level":1,"_dd.measured":1,"network.destination.port":8080,"process_id":79237,"_sampling_priority_v1":1},"start":1759388158376023600,"duration":17442139,"links":[],"service":"testdd","type":"http"},{"trace_id":"4a60c727f7b4999a","span_id":"4cc1c5bd1554b6c2","parent_id":"4a60c727f7b4999a","name":"tcp.connect","resource":"localhost:8080","error":0,"meta":{"service":"testdd","version":"1.0.0","runtime-id":"58c9a803-510f-4d3c-a762-9968c56f9518","_dd.rc.client_id":"a2c7abfb-3562-4cb9-8225-065638c68150","component":"net","span.kind":"client","tcp.remote.host":"localhost","tcp.family":"IPv4","tcp.local.address":"::1","out.host":"localhost","tcp.remote.port":"8080","network.destination.port":"8080","_dd.integration":"net","language":"javascript"},"metrics":{"_dd.measured":1,"tcp.local.port":50214,"process_id":79237,"_sampling_priority_v1":1},"start":1759388158380874000,"duration":4688232,"links":[],"service":"testdd"},{"trace_id":"4a60c727f7b4999a","span_id":"45132724c7860975","parent_id":"4cc1c5bd1554b6c2","name":"dns.lookup","resource":"localhost","error":0,"meta":{"service":"testdd","version":"1.0.0","runtime-id":"58c9a803-510f-4d3c-a762-9968c56f9518","_dd.rc.client_id":"a2c7abfb-3562-4cb9-8225-065638c68150","component":"dns","span.kind":"client","dns.hostname":"localhost","dns.address":"127.0.0.1","dns.addresses":"127.0.0.1,::1","_dd.integration":"dns","language":"javascript"},"metrics":{"_dd.measured":1,"process_id":79237,"_sampling_priority_v1":1},"start":1759388158381426000,"duration":3123291,"links":[],"service":"testdd"}]
Error: Error in plugin handler:
at wrappedHandler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:83:16)
at Subscription._handler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:15:9)
at Channel.publish (node:diagnostics_channel:150:9)
at node:diagnostics_channel:337:13
at run (node:diagnostics_channel:162:14)
at DatadogStorage.run (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-core/src/storage.js:79:22)
at node:diagnostics_channel:94:18
at Channel.runStores (node:diagnostics_channel:171:12)
at TracingChannel.traceSync (node:diagnostics_channel:327:18)
at WebSocket.close (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-instrumentations/src/ws.js:98:20)
TypeError: Cannot read properties of undefined (reading 'finish')
at WSClosePlugin.end (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-plugin-ws/src/close.js:65:14)
at /Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/tracing.js:77:22
at wrappedHandler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:81:24)
at Subscription._handler (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/dd-trace/src/plugins/plugin.js:15:9)
at Channel.publish (node:diagnostics_channel:150:9)
at node:diagnostics_channel:337:13
at run (node:diagnostics_channel:162:14)
at DatadogStorage.run (/Users/chiawen.c/testdd/node_modules/.pnpm/[email protected]/node_modules/dd-trace/packages/datadog-core/src/storage.js:79:22)
at node:diagnostics_channel:94:18
at Channel.runStores (node:diagnostics_channel:171:12)
Disabling plugin: undefined
Flushing 0 metrics via HTTP
Request to the agent: {"path":"/v0.4/traces","method":"PUT","headers":{"Content-Type":"application/msgpack","Datadog-Meta-Tracer-Version":"5.68.0","X-Datadog-Trace-Count":"2","Datadog-Meta-Lang":"nodejs","Datadog-Meta-Lang-Version":"v22.14.0","Datadog-Meta-Lang-Interpreter":"v8"},"url":"http://127.0.0.1:8126/"}
Response from the agent: {"rate_by_service":{"service:,env:":1,"service:testdd,env:":1,"service:testdd,env:none":1}}
Tracer Config
No response
Operating System
No response
Bundling
No Bundling
ksstoneware
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working