Skip to content

test(debugger): detect bracketed byteLength at runtime - #8172

Merged
BridgeAR merged 1 commit into
masterfrom
BridgeAR/2026-04-29-fix-debugger-template-byte-length-test
Apr 29, 2026
Merged

test(debugger): detect bracketed byteLength at runtime#8172
BridgeAR merged 1 commit into
masterfrom
BridgeAR/2026-04-29-fix-debugger-template-byte-length-test

Conversation

@BridgeAR

@BridgeAR BridgeAR commented Apr 29, 2026

Copy link
Copy Markdown
Member

Summary

The template integration test version-gates the bracketed [byteLength] form of util.inspect(new ArrayBuffer(...)) on >=24.11.1. That same change (nodejs/node#60131) was backported to v22.22.1, so the node-active job (Node 22.x) on master started failing as soon as the runner served v22.22.x. PR CI for #8140 was cached on v22.22.0 and stayed green; the post-merge run resolved v22.22.2 and tripped:

+ "ArrayBuffer { [Uint8Contents]: <00 00 00 ... 7 more bytes>, [byteLength]: 10, ... }"
- "ArrayBuffer { [Uint8Contents]: <00 00 00 ... 7 more bytes>, byteLength: 10, ... }"

Probe util.inspect(new ArrayBuffer(0)) for [byteLength] at runtime so the assertion follows the actual format on whatever patch the runner picks up. No more enumerating release lines as further backports land.

Refs: https://github.com/DataDog/dd-trace-js/actions/runs/25119400932/job/73618598749
Refs: nodejs/node#60131
Refs: #8140

@BridgeAR
BridgeAR requested a review from a team as a code owner April 29, 2026 16:37
@github-actions

github-actions Bot commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 5.67 MB
Deduped: 6.51 MB
No deduping: 6.51 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.0.1 | 82.56 kB | 817.39 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@datadog-prod-us1-5

datadog-prod-us1-5 Bot commented Apr 29, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 72c3900 | Docs | Datadog PR Page | Give us feedback!

The template integration test compared its output against a hardcoded
`util.inspect` string and version-gated the bracketed `[byteLength]` form
on `>=24.11.1`. The same change was later backported to Node.js v22.22.1,
which broke `node-active` on master once GitHub Actions started serving
v22.22.x to that job (PR CI happened to land on v22.22.0 and stayed
green).

Probe the current `util.inspect` output for `[byteLength]` instead, so
the assertion tracks Node's actual behavior on whatever patch the runner
picks up. This avoids having to enumerate every release line that
backports the change.

Refs: nodejs/node#60131
@BridgeAR
BridgeAR force-pushed the BridgeAR/2026-04-29-fix-debugger-template-byte-length-test branch from e208ce7 to 72c3900 Compare April 29, 2026 16:39
@watson watson added the debugger Dynamic Instrumentation & Live Debugger label Apr 29, 2026
@BridgeAR
BridgeAR enabled auto-merge (squash) April 29, 2026 17:01
@pr-commenter

pr-commenter Bot commented Apr 29, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-04-29 17:09:04

Comparing candidate commit 72c3900 in PR branch BridgeAR/2026-04-29-fix-debugger-template-byte-length-test with baseline commit abf7139 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1344 metrics, 100 unstable metrics.

@BridgeAR
BridgeAR merged commit 2ffb5f9 into master Apr 29, 2026
885 of 889 checks passed
@BridgeAR
BridgeAR deleted the BridgeAR/2026-04-29-fix-debugger-template-byte-length-test branch April 29, 2026 17:10
@codecov

codecov Bot commented Apr 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.19%. Comparing base (abf7139) to head (72c3900).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #8172   +/-   ##
=======================================
  Coverage   77.19%   77.19%           
=======================================
  Files         813      813           
  Lines       37658    37658           
=======================================
  Hits        29070    29070           
  Misses       8588     8588           
Flag Coverage Δ
aiguard-macos 35.82% <ø> (-0.09%) ⬇️
aiguard-ubuntu 35.93% <ø> (-0.09%) ⬇️
aiguard-windows 35.72% <ø> (-0.09%) ⬇️
apm-capabilities-tracing-macos 48.20% <ø> (ø)
apm-capabilities-tracing-ubuntu-active 48.23% <ø> (ø)
apm-capabilities-tracing-ubuntu-latest 48.20% <ø> (ø)
apm-capabilities-tracing-ubuntu-maintenance 48.23% <ø> (ø)
apm-capabilities-tracing-ubuntu-oldest 48.21% <ø> (ø)
apm-capabilities-tracing-windows 48.02% <ø> (-0.01%) ⬇️
apm-integrations-aerospike-18-gte.5.2.0 34.97% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-20-gte.5.5.0 34.99% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-22-gte.5.12.1 34.99% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-22-gte.6.0.0 34.99% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-eol- 34.89% <ø> (-0.09%) ⬇️
apm-integrations-child-process 36.15% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-18 41.83% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-20 41.85% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-22 41.85% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-24 41.78% <ø> (-0.09%) ⬇️
apm-integrations-couchbase-18 35.15% <ø> (-0.12%) ⬇️
apm-integrations-couchbase-eol 35.21% <ø> (-0.09%) ⬇️
apm-integrations-dns 35.00% <ø> (-0.12%) ⬇️
apm-integrations-elasticsearch 35.55% <ø> (-0.09%) ⬇️
apm-integrations-http-latest 42.98% <ø> (-0.08%) ⬇️
apm-integrations-http-maintenance 43.04% <ø> (-0.08%) ⬇️
apm-integrations-http-oldest 43.05% <ø> (-0.08%) ⬇️
apm-integrations-http2 40.35% <ø> (-0.09%) ⬇️
apm-integrations-kafkajs-latest 41.71% <ø> (-0.10%) ⬇️
apm-integrations-kafkajs-oldest 41.77% <ø> (-0.09%) ⬇️
apm-integrations-net 35.66% <ø> (-0.09%) ⬇️
apm-integrations-next-11.1.4 29.43% <ø> (-0.08%) ⬇️
apm-integrations-next-13.2.0 31.29% <ø> (-0.08%) ⬇️
apm-integrations-next-gte.10.2.0.and.lt.11 23.33% <ø> (ø)
apm-integrations-next-gte.11.0.0.and.lt.13 31.29% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.13.0.0.and.lt.14 31.54% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.14.0.0.and.lte.14.2.6 31.36% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.14.2.7.and.lt.15 31.36% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.15.0.0 31.42% <ø> (-0.09%) ⬇️
apm-integrations-prisma-18-gte.6.16.0.and.lt.7.0.0 35.52% <ø> (-0.09%) ⬇️
apm-integrations-prisma-latest-all 35.85% <ø> (-0.09%) ⬇️
apm-integrations-sharedb 34.57% <ø> (-0.09%) ⬇️
apm-integrations-tedious 35.13% <ø> (-0.09%) ⬇️
appsec-express 52.78% <ø> (-0.07%) ⬇️
appsec-fastify 49.26% <ø> (-0.07%) ⬇️
appsec-graphql 49.54% <ø> (+0.03%) ⬆️
appsec-kafka 42.08% <ø> (-0.08%) ⬇️
appsec-ldapjs 41.30% <ø> (-0.08%) ⬇️
appsec-lodash 41.42% <ø> (-0.08%) ⬇️
appsec-macos 56.78% <ø> (-0.07%) ⬇️
appsec-mongodb-core 45.69% <ø> (-0.07%) ⬇️
appsec-mongoose 46.57% <ø> (-0.07%) ⬇️
appsec-mysql 48.74% <ø> (-0.07%) ⬇️
appsec-next-latest-11.1.4 29.60% <ø> (-0.08%) ⬇️
appsec-next-latest-13.2.0 31.49% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.10.2.0.and.lt.11 31.60% <ø> (ø)
appsec-next-latest-gte.11.0.0.and.lt.13 31.47% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.13.0.0.and.lt.14 31.67% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.14.0.0.and.lte.14.2.6 31.52% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.14.2.7.and.lt.15 31.52% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.15.0.0 31.52% <ø> (-0.09%) ⬇️
appsec-next-oldest-11.1.4 29.62% <ø> (-0.08%) ⬇️
appsec-next-oldest-13.2.0 31.73% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.10.2.0.and.lt.11 31.76% <ø> (ø)
appsec-next-oldest-gte.11.0.0.and.lt.13 31.49% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.13.0.0.and.lt.14 31.92% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.14.0.0.and.lte.14.2.6 31.77% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.14.2.7.and.lt.15 31.77% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.15.0.0 31.77% <ø> (-0.09%) ⬇️
appsec-node-serialize 40.60% <ø> (-0.08%) ⬇️
appsec-passport 44.59% <ø> (-0.08%) ⬇️
appsec-postgres 48.33% <ø> (-0.17%) ⬇️
appsec-sourcing 40.09% <ø> (-0.08%) ⬇️
appsec-stripe 42.32% <ø> (-0.08%) ⬇️
appsec-template 40.76% <ø> (-0.08%) ⬇️
appsec-ubuntu 56.87% <ø> (-0.07%) ⬇️
appsec-windows 56.66% <ø> (-0.07%) ⬇️
debugger-ubuntu-active 62.13% <ø> (?)
debugger-ubuntu-latest 62.03% <ø> (-0.33%) ⬇️
debugger-ubuntu-maintenance 62.13% <ø> (-0.33%) ⬇️
debugger-ubuntu-oldest 62.23% <ø> (-0.33%) ⬇️
instrumentations-instrumentation-bluebird 29.88% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-body-parser 37.74% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-child_process 35.53% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-cookie-parser 31.81% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-express 32.03% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-express-mongo-sanitize 31.93% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-express-session 37.38% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-fs 29.56% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-generic-pool 30.59% <ø> (ø)
instrumentations-instrumentation-http 36.99% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-knex 29.85% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-light-my-request 37.30% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-mongoose 30.94% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-multer 37.52% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-mysql2 35.49% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-passport 41.17% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-passport-http 40.95% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-passport-local 41.46% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-pg 35.03% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-promise 29.82% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-promise-js 29.83% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-q 29.86% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-url 29.83% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-when 29.84% <ø> (-0.09%) ⬇️
llmobs-ai 38.45% <ø> (-0.09%) ⬇️
llmobs-anthropic 37.94% <ø> (-0.09%) ⬇️
llmobs-bedrock 37.15% <ø> (-0.08%) ⬇️
llmobs-google-genai 37.58% <ø> (-0.08%) ⬇️
llmobs-langchain 37.09% <ø> (-0.07%) ⬇️
llmobs-openai 41.26% <ø> (-0.08%) ⬇️
llmobs-vertex-ai 37.89% <ø> (-0.09%) ⬇️
openfeature-unit-active 50.43% <ø> (-0.52%) ⬇️
openfeature-unit-latest 50.28% <ø> (-0.52%) ⬇️
openfeature-unit-maintenance 50.43% <ø> (-0.52%) ⬇️
openfeature-unit-oldest 50.43% <ø> (-0.52%) ⬇️
platform-core 36.53% <ø> (ø)
platform-esbuild 40.80% <ø> (ø)
platform-instrumentations-misc 31.34% <ø> (ø)
platform-shimmer 42.11% <ø> (ø)
platform-unit-guardrails 35.88% <ø> (ø)
platform-webpack 20.78% <ø> (ø)
plugins-azure-durable-functions 25.36% <ø> (ø)
plugins-azure-event-hubs 25.51% <ø> (ø)
plugins-azure-service-bus 24.92% <ø> (ø)
plugins-bullmq 40.68% <ø> (-0.21%) ⬇️
plugins-cassandra 35.26% <ø> (-0.09%) ⬇️
plugins-cookie 26.47% <ø> (ø)
plugins-cookie-parser 26.28% <ø> (ø)
plugins-crypto 27.32% <ø> (ø)
plugins-dd-trace-api 35.48% <ø> (-0.09%) ⬇️
plugins-express-mongo-sanitize 26.42% <ø> (ø)
plugins-express-session 26.24% <ø> (ø)
plugins-fastify 39.38% <ø> (-0.09%) ⬇️
plugins-fetch 35.89% <ø> (-0.06%) ⬇️
plugins-fs 35.75% <ø> (-0.09%) ⬇️
plugins-generic-pool 25.40% <ø> (ø)
plugins-google-cloud-pubsub 43.05% <ø> (-0.11%) ⬇️
plugins-grpc 38.12% <ø> (-0.09%) ⬇️
plugins-handlebars 26.46% <ø> (ø)
plugins-hapi 37.49% <ø> (+0.04%) ⬆️
plugins-hono 37.61% <ø> (-0.09%) ⬇️
plugins-ioredis 35.80% <ø> (-0.09%) ⬇️
plugins-knex 26.14% <ø> (ø)
plugins-langgraph 35.14% <ø> (-0.09%) ⬇️
plugins-ldapjs 24.02% <ø> (ø)
plugins-light-my-request 25.88% <ø> (ø)
plugins-limitd-client 30.12% <ø> (-0.09%) ⬇️
plugins-lodash 25.47% <ø> (ø)
plugins-mariadb 36.67% <ø> (-0.14%) ⬇️
plugins-memcached 35.45% <ø> (-0.09%) ⬇️
plugins-microgateway-core 36.65% <ø> (+0.11%) ⬆️
plugins-modelcontextprotocol-sdk 34.39% <ø> (-0.09%) ⬇️
plugins-moleculer 38.14% <ø> (-0.09%) ⬇️
plugins-mongodb 36.64% <ø> (-0.09%) ⬇️
plugins-mongodb-core 36.27% <ø> (-0.09%) ⬇️
plugins-mongoose 36.12% <ø> (-0.09%) ⬇️
plugins-multer 26.24% <ø> (ø)
plugins-mysql 36.53% <ø> (+0.04%) ⬆️
plugins-mysql2 36.50% <ø> (-0.09%) ⬇️
plugins-node-serialize 26.51% <ø> (ø)
plugins-opensearch 35.11% <ø> (-0.09%) ⬇️
plugins-passport-http 26.30% <ø> (ø)
plugins-pino 31.91% <ø> (-0.09%) ⬇️
plugins-postgres 34.50% <ø> (-0.21%) ⬇️
plugins-process 27.32% <ø> (ø)
plugins-pug 26.47% <ø> (ø)
plugins-redis 36.01% <ø> (-0.09%) ⬇️
plugins-router 39.90% <ø> (+0.04%) ⬆️
plugins-sequelize 25.18% <ø> (ø)
plugins-test-and-upstream-amqp10 35.77% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-amqplib 40.92% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-apollo 36.61% <ø> (-0.08%) ⬇️
plugins-test-and-upstream-avsc 35.10% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-bunyan 31.26% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-connect 37.95% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-graphql 37.29% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-koa 37.68% <ø> (+0.10%) ⬆️
plugins-test-and-upstream-protobufjs 35.32% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-rhea 41.00% <ø> (-0.09%) ⬇️
plugins-undici 36.62% <ø> (-0.09%) ⬇️
plugins-url 27.32% <ø> (ø)
plugins-valkey 35.49% <ø> (-0.09%) ⬇️
plugins-vm 27.32% <ø> (ø)
plugins-winston 31.86% <ø> (-0.09%) ⬇️
plugins-ws 39.07% <ø> (-0.09%) ⬇️
profiling-macos 40.69% <ø> (-0.08%) ⬇️
profiling-ubuntu 41.30% <ø> (-0.08%) ⬇️
profiling-windows 40.87% <ø> (-0.08%) ⬇️
serverless-azure-functions-client 25.25% <ø> (ø)
serverless-azure-functions-eventhubs 25.25% <ø> (ø)
serverless-azure-functions-servicebus 25.25% <ø> (ø)
serverless-lambda 33.56% <ø> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

dd-octo-sts Bot pushed a commit that referenced this pull request Apr 29, 2026
The template integration test compared its output against a hardcoded
`util.inspect` string and version-gated the bracketed `[byteLength]` form
on `>=24.11.1`. The same change was later backported to Node.js v22.22.1,
which broke `node-active` on master once GitHub Actions started serving
v22.22.x to that job (PR CI happened to land on v22.22.0 and stayed
green).

Probe the current `util.inspect` output for `[byteLength]` instead, so
the assertion tracks Node's actual behavior on whatever patch the runner
picks up. This avoids having to enumerate every release line that
backports the change.

Refs: nodejs/node#60131
Refs: #8140
@dd-octo-sts dd-octo-sts Bot mentioned this pull request Apr 29, 2026
BridgeAR added a commit that referenced this pull request Apr 30, 2026
The template integration test compared its output against a hardcoded
`util.inspect` string and version-gated the bracketed `[byteLength]` form
on `>=24.11.1`. The same change was later backported to Node.js v22.22.1,
which broke `node-active` on master once GitHub Actions started serving
v22.22.x to that job (PR CI happened to land on v22.22.0 and stayed
green).

Probe the current `util.inspect` output for `[byteLength]` instead, so
the assertion tracks Node's actual behavior on whatever patch the runner
picks up. This avoids having to enumerate every release line that
backports the change.

Refs: nodejs/node#60131
Refs: #8140
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debugger Dynamic Instrumentation & Live Debugger semver-patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants