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

Fix forked JVM args duplication when auto-configuring Gradle test tasks #6151

Conversation

nikita-tkachenko-datadog
Copy link
Contributor

@nikita-tkachenko-datadog nikita-tkachenko-datadog commented Nov 3, 2023

What Does This Do

Fixes Gradle test tasks configurator: to run the forked JVM with the tracer, it modifies JVM arguments of Gradle test tasks.
It did so by calling Test.jvmArgs(), which appended the new arguments to the existing ones.
Since the compiled list of arguments already contains the existing ones, it should replace rather than be added to the list of existing args.
So the code was updated to call Test.setJvmArgs(), which has the desired semantics.

Motivation

Duplicating some args (e.g. --patch-module) can cause the forked JVM to fail.

Jira ticket: CIVIS-7901

@pr-commenter
Copy link

pr-commenter bot commented Nov 3, 2023

Benchmarks

Startup

Parameters

Baseline Candidate
commit 1.23.0-SNAPSHOT~0345c95db1 1.23.0-SNAPSHOT~13a0984681
config baseline candidate
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 54 cases.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.23.0-SNAPSHOT~13a0984681, baseline=1.23.0-SNAPSHOT~0345c95db1

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.041 s) : 0, 1041063
Total [baseline] (9.468 s) : 0, 9467670
Agent [candidate] (1.039 s) : 0, 1038985
Total [candidate] (9.323 s) : 0, 9323119
section appsec
Agent [baseline] (1.114 s) : 0, 1114135
Total [baseline] (9.389 s) : 0, 9389432
Agent [candidate] (1.121 s) : 0, 1121377
Total [candidate] (9.442 s) : 0, 9442436
section iast
Agent [baseline] (1.152 s) : 0, 1152029
Total [baseline] (9.589 s) : 0, 9589029
Agent [candidate] (1.157 s) : 0, 1157014
Total [candidate] (9.57 s) : 0, 9570221
section profiling
Agent [baseline] (1.22 s) : 0, 1220228
Total [baseline] (9.523 s) : 0, 9523299
Agent [candidate] (1.22 s) : 0, 1219646
Total [candidate] (9.637 s) : 0, 9637064
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.041 s -
Agent appsec 1.114 s 73.072 ms (7.0%)
Agent iast 1.152 s 110.966 ms (10.7%)
Agent profiling 1.22 s 179.165 ms (17.2%)
Total tracing 9.468 s -
Total appsec 9.389 s -78.238 ms (-0.8%)
Total iast 9.589 s 121.359 ms (1.3%)
Total profiling 9.523 s 55.629 ms (0.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.039 s -
Agent appsec 1.121 s 82.392 ms (7.9%)
Agent iast 1.157 s 118.029 ms (11.4%)
Agent profiling 1.22 s 180.661 ms (17.4%)
Total tracing 9.323 s -
Total appsec 9.442 s 119.318 ms (1.3%)
Total iast 9.57 s 247.102 ms (2.7%)
Total profiling 9.637 s 313.945 ms (3.4%)
gantt
    title petclinic - break down per module: candidate=1.23.0-SNAPSHOT~13a0984681, baseline=1.23.0-SNAPSHOT~0345c95db1

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (649.644 ms) : 0, 649644
BytebuddyAgent [candidate] (647.55 ms) : 0, 647550
GlobalTracer [baseline] (295.646 ms) : 0, 295646
GlobalTracer [candidate] (295.852 ms) : 0, 295852
AppSec [baseline] (49.058 ms) : 0, 49058
AppSec [candidate] (48.876 ms) : 0, 48876
Remote Config [baseline] (698.643 µs) : 0, 699
Remote Config [candidate] (706.886 µs) : 0, 707
Telemetry [baseline] (11.426 ms) : 0, 11426
Telemetry [candidate] (11.571 ms) : 0, 11571
section appsec
BytebuddyAgent [baseline] (642.448 ms) : 0, 642448
BytebuddyAgent [candidate] (646.366 ms) : 0, 646366
GlobalTracer [baseline] (291.78 ms) : 0, 291780
GlobalTracer [candidate] (294.328 ms) : 0, 294328
AppSec [baseline] (138.264 ms) : 0, 138264
AppSec [candidate] (138.719 ms) : 0, 138719
Remote Config [baseline] (640.554 µs) : 0, 641
Remote Config [candidate] (644.04 µs) : 0, 644
Telemetry [baseline] (6.838 ms) : 0, 6838
Telemetry [candidate] (6.877 ms) : 0, 6877
section iast
BytebuddyAgent [baseline] (764.928 ms) : 0, 764928
BytebuddyAgent [candidate] (770.391 ms) : 0, 770391
GlobalTracer [baseline] (275.356 ms) : 0, 275356
GlobalTracer [candidate] (276.42 ms) : 0, 276420
AppSec [baseline] (46.974 ms) : 0, 46974
AppSec [candidate] (46.875 ms) : 0, 46875
Remote Config [baseline] (590.608 µs) : 0, 591
Remote Config [candidate] (587.347 µs) : 0, 587
Telemetry [baseline] (13.4 ms) : 0, 13400
Telemetry [candidate] (11.494 ms) : 0, 11494
IAST [baseline] (16.422 ms) : 0, 16422
IAST [candidate] (16.505 ms) : 0, 16505
section profiling
BytebuddyAgent [baseline] (656.109 ms) : 0, 656109
BytebuddyAgent [candidate] (656.22 ms) : 0, 656220
GlobalTracer [baseline] (358.951 ms) : 0, 358951
GlobalTracer [candidate] (359.204 ms) : 0, 359204
AppSec [baseline] (49.955 ms) : 0, 49955
AppSec [candidate] (48.975 ms) : 0, 48975
Remote Config [baseline] (643.19 µs) : 0, 643
Remote Config [candidate] (648.192 µs) : 0, 648
Telemetry [baseline] (11.386 ms) : 0, 11386
Telemetry [candidate] (11.321 ms) : 0, 11321
ProfilingAgent [baseline] (88.808 ms) : 0, 88808
ProfilingAgent [candidate] (89.076 ms) : 0, 89076
Profiling [baseline] (88.832 ms) : 0, 88832
Profiling [candidate] (89.1 ms) : 0, 89100
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.23.0-SNAPSHOT~13a0984681, baseline=1.23.0-SNAPSHOT~0345c95db1

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.042 s) : 0, 1042246
Total [baseline] (8.838 s) : 0, 8838402
Agent [candidate] (1.037 s) : 0, 1037265
Total [candidate] (8.829 s) : 0, 8829090
section iast
Agent [baseline] (1.148 s) : 0, 1148099
Total [baseline] (9.361 s) : 0, 9360673
Agent [candidate] (1.161 s) : 0, 1161498
Total [candidate] (9.375 s) : 0, 9375139
section iast_TELEMETRY_OFF
Agent [baseline] (1.139 s) : 0, 1139000
Total [baseline] (9.284 s) : 0, 9283668
Agent [candidate] (1.148 s) : 0, 1147810
Total [candidate] (9.308 s) : 0, 9308413
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent iast 1.148 s 105.853 ms (10.2%)
Agent iast_TELEMETRY_OFF 1.139 s 96.754 ms (9.3%)
Total tracing 8.838 s -
Total iast 9.361 s 522.271 ms (5.9%)
Total iast_TELEMETRY_OFF 9.284 s 445.266 ms (5.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.037 s -
Agent iast 1.161 s 124.233 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.148 s 110.545 ms (10.7%)
Total tracing 8.829 s -
Total iast 9.375 s 546.049 ms (6.2%)
Total iast_TELEMETRY_OFF 9.308 s 479.323 ms (5.4%)
gantt
    title insecure-bank - break down per module: candidate=1.23.0-SNAPSHOT~13a0984681, baseline=1.23.0-SNAPSHOT~0345c95db1

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (649.995 ms) : 0, 649995
BytebuddyAgent [candidate] (646.557 ms) : 0, 646557
GlobalTracer [baseline] (295.791 ms) : 0, 295791
GlobalTracer [candidate] (295.185 ms) : 0, 295185
AppSec [baseline] (49.466 ms) : 0, 49466
AppSec [candidate] (49.015 ms) : 0, 49015
Remote Config [baseline] (702.509 µs) : 0, 703
Remote Config [candidate] (693.927 µs) : 0, 694
Telemetry [baseline] (11.499 ms) : 0, 11499
Telemetry [candidate] (11.343 ms) : 0, 11343
section iast
BytebuddyAgent [baseline] (763.62 ms) : 0, 763620
BytebuddyAgent [candidate] (772.954 ms) : 0, 772954
GlobalTracer [baseline] (273.567 ms) : 0, 273567
GlobalTracer [candidate] (277.072 ms) : 0, 277072
AppSec [baseline] (47.372 ms) : 0, 47372
AppSec [candidate] (47.091 ms) : 0, 47091
IAST [baseline] (16.054 ms) : 0, 16054
IAST [candidate] (15.674 ms) : 0, 15674
Remote Config [baseline] (571.414 µs) : 0, 571
Remote Config [candidate] (595.188 µs) : 0, 595
Telemetry [baseline] (12.636 ms) : 0, 12636
Telemetry [candidate] (13.372 ms) : 0, 13372
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (755.734 ms) : 0, 755734
BytebuddyAgent [candidate] (761.548 ms) : 0, 761548
GlobalTracer [baseline] (272.895 ms) : 0, 272895
GlobalTracer [candidate] (276.046 ms) : 0, 276046
AppSec [baseline] (46.585 ms) : 0, 46585
AppSec [candidate] (46.93 ms) : 0, 46930
IAST [baseline] (17.186 ms) : 0, 17186
IAST [candidate] (15.482 ms) : 0, 15482
Remote Config [baseline] (562.555 µs) : 0, 563
Remote Config [candidate] (575.013 µs) : 0, 575
Telemetry [baseline] (11.767 ms) : 0, 11767
Telemetry [candidate] (12.732 ms) : 0, 12732
Loading

Load

Parameters

Baseline Candidate
commit 1.23.0-SNAPSHOT~0345c95db1 1.23.0-SNAPSHOT~13a0984681
config baseline candidate
end_time 2023-11-03T19:35:40 2023-11-03T19:52:12
start_time 2023-11-03T19:35:27 2023-11-03T19:51:59
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 22 cases.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.23.0-SNAPSHOT~13a0984681, baseline=1.23.0-SNAPSHOT~0345c95db1
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.348 ms) : 1329, 1367
.   : milestone, 1348,
appsec (1.713 ms) : 1688, 1737
.   : milestone, 1713,
iast (1.492 ms) : 1467, 1516
.   : milestone, 1492,
profiling (1.498 ms) : 1471, 1524
.   : milestone, 1498,
tracing (1.479 ms) : 1455, 1504
.   : milestone, 1479,
section candidate
no_agent (1.357 ms) : 1338, 1377
.   : milestone, 1357,
appsec (1.695 ms) : 1671, 1720
.   : milestone, 1695,
iast (1.493 ms) : 1469, 1517
.   : milestone, 1493,
profiling (1.484 ms) : 1457, 1511
.   : milestone, 1484,
tracing (1.455 ms) : 1431, 1480
.   : milestone, 1455,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.348 ms [1.329 ms, 1.367 ms] -
appsec 1.713 ms [1.688 ms, 1.737 ms] 364.361 µs (27.0%)
iast 1.492 ms [1.467 ms, 1.516 ms] 143.651 µs (10.7%)
profiling 1.498 ms [1.471 ms, 1.524 ms] 149.476 µs (11.1%)
tracing 1.479 ms [1.455 ms, 1.504 ms] 131.175 µs (9.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.357 ms [1.338 ms, 1.377 ms] -
appsec 1.695 ms [1.671 ms, 1.72 ms] 338.252 µs (24.9%)
iast 1.493 ms [1.469 ms, 1.517 ms] 135.835 µs (10.0%)
profiling 1.484 ms [1.457 ms, 1.511 ms] 126.518 µs (9.3%)
tracing 1.455 ms [1.431 ms, 1.48 ms] 98.296 µs (7.2%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.23.0-SNAPSHOT~13a0984681, baseline=1.23.0-SNAPSHOT~0345c95db1
    dateFormat X
    axisFormat %s
section baseline
no_agent (368.18 µs) : 348, 388
.   : milestone, 368,
iast (462.848 µs) : 442, 484
.   : milestone, 463,
iast_FULL (525.567 µs) : 505, 546
.   : milestone, 526,
iast_INACTIVE (440.772 µs) : 419, 463
.   : milestone, 441,
iast_TELEMETRY_OFF (464.555 µs) : 443, 486
.   : milestone, 465,
tracing (435.69 µs) : 415, 457
.   : milestone, 436,
section candidate
no_agent (361.058 µs) : 341, 381
.   : milestone, 361,
iast (464.888 µs) : 444, 486
.   : milestone, 465,
iast_FULL (528.933 µs) : 508, 550
.   : milestone, 529,
iast_INACTIVE (439.006 µs) : 418, 460
.   : milestone, 439,
iast_TELEMETRY_OFF (465.111 µs) : 445, 486
.   : milestone, 465,
tracing (445.898 µs) : 424, 468
.   : milestone, 446,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 368.18 µs [348.134 µs, 388.226 µs] -
iast 462.848 µs [441.889 µs, 483.807 µs] 94.668 µs (25.7%)
iast_FULL 525.567 µs [505.01 µs, 546.124 µs] 157.387 µs (42.7%)
iast_INACTIVE 440.772 µs [418.892 µs, 462.653 µs] 72.592 µs (19.7%)
iast_TELEMETRY_OFF 464.555 µs [443.406 µs, 485.705 µs] 96.375 µs (26.2%)
tracing 435.69 µs [414.516 µs, 456.863 µs] 67.509 µs (18.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 361.058 µs [341.264 µs, 380.853 µs] -
iast 464.888 µs [444.017 µs, 485.758 µs] 103.829 µs (28.8%)
iast_FULL 528.933 µs [508.319 µs, 549.546 µs] 167.874 µs (46.5%)
iast_INACTIVE 439.006 µs [417.765 µs, 460.248 µs] 77.948 µs (21.6%)
iast_TELEMETRY_OFF 465.111 µs [444.512 µs, 485.709 µs] 104.052 µs (28.8%)
tracing 445.898 µs [424.288 µs, 467.508 µs] 84.84 µs (23.5%)

@nikita-tkachenko-datadog nikita-tkachenko-datadog merged commit 63c6b42 into master Nov 6, 2023
69 of 71 checks passed
@nikita-tkachenko-datadog nikita-tkachenko-datadog deleted the nikita-tkachenko/fix-gradle-auto-configuration-duplicate-args branch November 6, 2023 09:33
@github-actions github-actions bot added this to the 1.23.0 milestone Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: ci visibility Continuous Integration Visibility type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants