Skip to content

[DI] Remove source map cache#5302

Merged
BridgeAR merged 5 commits intomasterfrom
watson/DEBUG-3526/workaround-async-node-bug
Feb 25, 2025
Merged

[DI] Remove source map cache#5302
BridgeAR merged 5 commits intomasterfrom
watson/DEBUG-3526/workaround-async-node-bug

Conversation

@watson
Copy link
Copy Markdown
Collaborator

@watson watson commented Feb 20, 2025

What does this PR do?

Remove the source map cache used to reduce disk-access the first time a Dynamic Instrumentation probe is applied in a running process.

Motivation

This is the second attempt at a workaround for a bug in Node.js core, that sometimes triggers when, among other things, a timer is created (the first attempt is #5290). This makes the call to setTimeout throw an un-catchable error from within AsyncLocalStorage._propagate with the following TypeError:

Cannot read properties of undefined (reading 'Symbol(kResourceStore)')

Plugin Checklist

Additional Notes

@watson watson requested review from a team as code owners February 20, 2025 10:26
@watson watson self-assigned this Feb 20, 2025
@watson watson added semver-patch debugger Dynamic Instrumentation & Live Debugger labels Feb 20, 2025
Copy link
Copy Markdown
Collaborator Author

watson commented Feb 20, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 20, 2025

Overall package size

Self size: 8.77 MB
Deduped: 94.97 MB
No deduping: 95.49 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.3.0 | 13.77 MB | 13.78 MB | | @datadog/pprof | 5.5.1 | 9.79 MB | 10.17 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.8.0 | 2.6 MB | 2.74 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 835.4 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

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

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 20, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.96%. Comparing base (96bb84a) to head (dcf3b05).
Report is 14 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5302      +/-   ##
==========================================
+ Coverage   80.94%   80.96%   +0.02%     
==========================================
  Files         488      489       +1     
  Lines       21844    21860      +16     
==========================================
+ Hits        17681    17699      +18     
+ Misses       4163     4161       -2     

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

@datadog-datadog-prod-us1
Copy link
Copy Markdown

datadog-datadog-prod-us1 Bot commented Feb 20, 2025

Datadog Report

Branch report: watson/DEBUG-3526/workaround-async-node-bug
Commit report: 950e632
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 678 Passed, 0 Skipped, 17m 21.94s Total Time

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Feb 20, 2025

Benchmarks

Benchmark execution time: 2025-02-25 09:05:50

Comparing candidate commit dcf3b05 in PR branch watson/DEBUG-3526/workaround-async-node-bug with baseline commit 96bb84a in branch master.

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

szegedi
szegedi previously approved these changes Feb 20, 2025
tylfin
tylfin previously approved these changes Feb 20, 2025
This is the second attempt at a workaround for a bug in Node.js core,
that sometimes triggers when, among other things, a timer is created.
This makes the call to `setTimeout` throw an un-catchable error from
within `AsyncLocalStorage._propagate` with the following TypeError:

    Cannot read properties of undefined (reading 'Symbol(kResourceStore)')
This reverts commit faf30f3194fa180cc485eb4e3b98bf946601c28a.
@watson watson dismissed stale reviews from tylfin and szegedi via dcf3b05 February 25, 2025 08:56
@watson watson force-pushed the watson/DEBUG-3526/workaround-async-node-bug branch from faf30f3 to dcf3b05 Compare February 25, 2025 08:56
@BridgeAR
Copy link
Copy Markdown
Member

/merge --method squash

@dd-devflow
Copy link
Copy Markdown

dd-devflow Bot commented Feb 25, 2025

View all feedbacks in Devflow UI.
2025-02-25 14:19:49 UTC ℹ️ Start processing command /merge --method squash


2025-02-25 14:19:57 UTC ℹ️ MergeQueue: waiting for PR to be ready

This merge request is not mergeable yet, because of pending checks/missing approvals. It will be added to the queue as soon as checks pass and/or get approvals.
Note: if you pushed new commits since the last approval, you may need additional approval.
You can remove it from the waiting list with /remove command.


2025-02-25 15:13:39 UTC ⚠️ MergeQueue: This merge request was unqueued

ruben.bridgewater@datadoghq.com unqueued this merge request

@BridgeAR
Copy link
Copy Markdown
Member

/remove

@dd-devflow
Copy link
Copy Markdown

dd-devflow Bot commented Feb 25, 2025

View all feedbacks in Devflow UI.
2025-02-25 15:13:28 UTC ℹ️ Start processing command /remove


2025-02-25 15:13:31 UTC ℹ️ Devflow: /remove

@BridgeAR BridgeAR merged commit 7aae4fc into master Feb 25, 2025
@BridgeAR BridgeAR deleted the watson/DEBUG-3526/workaround-async-node-bug branch February 25, 2025 15:14
watson added a commit that referenced this pull request Feb 27, 2025
* [DI] Remove source map cache for Node.js 18

This is the second attempt at a workaround for a bug in Node.js core,
that sometimes triggers when, among other things, a timer is created.
This makes the call to `setTimeout` throw an un-catchable error from
within `AsyncLocalStorage._propagate` with the following TypeError:

    Cannot read properties of undefined (reading 'Symbol(kResourceStore)')

* Adjust cache timings
@watson watson mentioned this pull request Feb 27, 2025
watson added a commit that referenced this pull request Feb 27, 2025
* [DI] Remove source map cache for Node.js 18

This is the second attempt at a workaround for a bug in Node.js core,
that sometimes triggers when, among other things, a timer is created.
This makes the call to `setTimeout` throw an un-catchable error from
within `AsyncLocalStorage._propagate` with the following TypeError:

    Cannot read properties of undefined (reading 'Symbol(kResourceStore)')

* Adjust cache timings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debugger Dynamic Instrumentation & Live Debugger mergequeue-status: removed semver-patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants