Skip to content

[DI] Remove source map cache#5302

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

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

Conversation

@watson

@watson watson commented Feb 20, 2025

Copy link
Copy Markdown
Collaborator

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

watson commented Feb 20, 2025

Copy link
Copy Markdown
Collaborator Author

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

@github-actions

github-actions Bot commented Feb 20, 2025

Copy link
Copy Markdown
Contributor

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

codecov Bot commented Feb 20, 2025

Copy link
Copy Markdown

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

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

Copy link
Copy Markdown

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

pr-commenter Bot commented Feb 20, 2025

Copy link
Copy Markdown

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

dd-devflow Bot commented Feb 25, 2025

Copy link
Copy Markdown

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

[email protected] unqueued this merge request

@BridgeAR

Copy link
Copy Markdown
Member

/remove

@dd-devflow

dd-devflow Bot commented Feb 25, 2025

Copy link
Copy Markdown

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