Skip to content

Fix fs and rasp/iast problems #6088

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

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Conversation

uurien
Copy link
Collaborator

@uurien uurien commented Jul 14, 2025

What does this PR do?

Fix appsec and iast fs-plugin to work as expected when multiple calls to fs methods are executed without waiting to the callback.

Motivation

Fix a problem found with fastify + logger and fix the features.

Copy link

github-actions bot commented Jul 14, 2025

Overall package size

Self size: 9.69 MB
Deduped: 109.27 MB
No deduping: 109.66 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 10.0.0 | 20.3 MB | 20.31 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.9.0 | 9.77 MB | 10.14 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | jsonpath-plus | 10.3.0 | 617.18 kB | 1.08 MB | | import-in-the-middle | 1.14.2 | 122.36 kB | 850.93 kB | | lru-cache | 10.4.3 | 804.3 kB | 804.3 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 7.0.5 | 63.38 kB | 63.38 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.3 | 23.74 kB | 23.74 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 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 | | mutexify | 1.4.0 | 5.71 kB | 8.74 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.4 | 3.96 kB | 3.96 kB |

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

Copy link

codecov bot commented Jul 14, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.29%. Comparing base (2244cf0) to head (236cb24).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6088      +/-   ##
==========================================
- Coverage   81.98%   81.29%   -0.70%     
==========================================
  Files         475      463      -12     
  Lines       19598    19364     -234     
==========================================
- Hits        16067    15741     -326     
- Misses       3531     3623      +92     

☔ 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.

@pr-commenter
Copy link

pr-commenter bot commented Jul 14, 2025

Benchmarks

Benchmark execution time: 2025-07-15 13:51:30

Comparing candidate commit 236cb24 in PR branch ugaitz/fix-lfi-detections with baseline commit 2244cf0 in branch master.

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

@uurien uurien force-pushed the ugaitz/fix-lfi-detections branch 3 times, most recently from 2938bbf to d0a0287 Compare July 15, 2025 11:46
@uurien uurien force-pushed the ugaitz/fix-lfi-detections branch from d0a0287 to 14420cb Compare July 15, 2025 12:40
@uurien uurien force-pushed the ugaitz/fix-lfi-detections branch from c56715e to ecec633 Compare July 15, 2025 13:38
@uurien uurien marked this pull request as ready for review July 15, 2025 14:41
@uurien uurien requested review from a team as code owners July 15, 2025 14:41
this.addSub('apm:fs:operation:finish', this._onFsOperationFinishOrRenderEnd)
this.addSub('tracing:datadog:express:response:render:start', this._onResponseRenderStart)
this.addSub('tracing:datadog:express:response:render:end', this._onFsOperationFinishOrRenderEnd)
this.addBind('apm:fs:operation:start', this._onFsOperationStart)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should bind only on the first one apm:fs:operation:start to avoid replacing transform function, then we can listen on others

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In all of them we were doing enterWith, we can avoid that using addBind. iiuc subscribing to do enterWith is almost the same of doing that using addBind

Comment on lines +228 to +232
// TODO Remove this when node 18 is unsupported or dc-polyfill is fixed&updated
// hack to node 18 and early 20.x
// with dc-polyfill addBind is not enough to force a channel.hasSubscribers === true
const onStart = () => {}
opStartCh.subscribe(onStart)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that sounds like a bug in the code that should be fixed in the code, not in the tests, no ?

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.

3 participants