Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DI] Remove source map cache #5302

Merged
merged 5 commits into from
Feb 25, 2025

Conversation

watson
Copy link
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

Copy link
Collaborator Author

watson commented Feb 20, 2025

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

Copy link

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

Copy link

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

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

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)')
@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
Collaborator

/merge --method squash

@dd-devflow
Copy link

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
Collaborator

/remove

@dd-devflow
Copy link

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
397 of 398 checks passed
@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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants