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

[ci-visibility] Work around jest's --forceExit #4049

Merged
merged 4 commits into from
Feb 14, 2024

Conversation

juan-fernandez
Copy link
Collaborator

@juan-fernandez juan-fernandez commented Feb 12, 2024

What does this PR do?

Jest's --forceExit option (https://jestjs.io/docs/cli#--forceexit) shuts down the process abruptly, without waiting for open handles to finish. This PR adds instrumentation to wait for the information flush before jest is able to shut down the process.

Additionally, we'll add a log.warn if forceExit is passed, because it could still lead to data being missed.

Motivation

Fix product for users passing --forceExit to their jest command. They're currently losing data.

Plugin Checklist

  • Unit tests.

Security

Datadog employees:

  • If this PR touches code that signs or publishes builds or packages, or handles credentials of any kind, I've requested a review from @DataDog/security-design-and-guidance.
  • This PR doesn't touch any of that.

Unsure? Have a question? Request a review!

Copy link

github-actions bot commented Feb 12, 2024

Overall package size

Self size: 6.04 MB
Deduped: 61.63 MB
No deduping: 62.39 MB

Dependency sizes

name version self size total size
@datadog/native-iast-taint-tracking 1.6.4 16.43 MB 16.44 MB
@datadog/native-appsec 7.0.0 14.51 MB 14.52 MB
@datadog/pprof 5.0.0 9.59 MB 10.44 MB
protobufjs 7.2.5 2.77 MB 6.56 MB
@datadog/native-iast-rewriter 2.2.3 2.19 MB 2.28 MB
@opentelemetry/core 1.14.0 872.87 kB 1.47 MB
@datadog/native-metrics 2.0.0 898.77 kB 1.3 MB
@opentelemetry/api 1.4.1 780.32 kB 780.32 kB
import-in-the-middle 1.7.3 67.62 kB 731.01 kB
pprof-format 2.0.7 588.12 kB 588.12 kB
msgpack-lite 0.1.26 201.16 kB 281.59 kB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.5.4 93.4 kB 123.8 kB
@datadog/sketches-js 2.1.0 109.9 kB 109.9 kB
lodash.sortby 4.7.0 75.76 kB 75.76 kB
lru-cache 7.14.0 74.95 kB 74.95 kB
ipaddr.js 2.1.0 60.23 kB 60.23 kB
ignore 5.2.4 51.22 kB 51.22 kB
int64-buffer 0.1.10 49.18 kB 49.18 kB
shell-quote 1.8.1 44.96 kB 44.96 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 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
node-abort-controller 3.1.1 16.89 kB 16.89 kB
jest-docblock 29.7.0 8.99 kB 12.76 kB
crypto-randomuuid 1.0.0 11.18 kB 11.18 kB
path-to-regexp 0.1.7 6.78 kB 6.78 kB
koalas 1.0.2 6.47 kB 6.47 kB
methods 1.1.2 5.29 kB 5.29 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

@@ -548,6 +567,10 @@ function configureTestEnvironment (readConfigsResult) {

isUserCodeCoverageEnabled = !!readConfigsResult.globalConfig.collectCoverage

if (readConfigsResult.globalConfig) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

typo: need to check forceExit, not just global config

Copy link

codecov bot commented Feb 12, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (d8570a2) 85.33% compared to head (6aa2000) 85.33%.
Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #4049   +/-   ##
=======================================
  Coverage   85.33%   85.33%           
=======================================
  Files         243      243           
  Lines       10568    10569    +1     
  Branches       33       33           
=======================================
+ Hits         9018     9019    +1     
  Misses       1550     1550           

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

@pr-commenter
Copy link

pr-commenter bot commented Feb 12, 2024

Benchmarks

Benchmark execution time: 2024-02-14 11:35:57

Comparing candidate commit 6aa2000 in PR branch juan-fernandez/fix-force-exit-jest with baseline commit d8570a2 in branch master.

Found 1 performance improvements and 0 performance regressions! Performance is the same for 260 metrics, 5 unstable metrics.

scenario:plugin-graphql-with-depth-and-collapse-on-18

  • 🟩 max_rss_usage [-117.926MB; -105.946MB] or [-12.486%; -11.217%]

@tlhunter tlhunter force-pushed the juan-fernandez/fix-force-exit-jest branch from 8ff3445 to eeb082d Compare February 12, 2024 23:15
@juan-fernandez juan-fernandez marked this pull request as ready for review February 13, 2024 12:28
@juan-fernandez juan-fernandez requested review from a team as code owners February 13, 2024 12:28
anmarchenko
anmarchenko previously approved these changes Feb 13, 2024
szegedi
szegedi previously approved these changes Feb 14, 2024
Copy link
Contributor

@szegedi szegedi left a comment

Choose a reason for hiding this comment

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

LGTM, I'll let you decide on whether you want to deduplicate that code or not.

integration-tests/ci-visibility-intake.js Outdated Show resolved Hide resolved
simon-id
simon-id previously approved these changes Feb 14, 2024
@juan-fernandez juan-fernandez merged commit ba6ad8b into master Feb 14, 2024
110 of 111 checks passed
@juan-fernandez juan-fernandez deleted the juan-fernandez/fix-force-exit-jest branch February 14, 2024 12:19
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.

5 participants