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 native-image generation of reactive applications #8012

Merged
merged 2 commits into from
Nov 27, 2024

Conversation

mcculls
Copy link
Contributor

@mcculls mcculls commented Nov 25, 2024

What Does This Do

Refactors registration of AsyncResult extensions so it doesn't pull in AsyncResultDecorator and all the associated decorator and function classes at bytecode transformation time, which would pollute the analyzed heap and lead to them all needing to be marked as build-time.

Also marks the runtime holder of AsyncResult extensions as re-runnable. This avoids having to list all the different extensions that might end up registered as build-time, but also avoids double registrations where the same extension is registered at build-time via native-image - and at runtime via the compiled type initializer.

Motivation

The recent refactoring of AsyncResult extensions caused a regression in our native-image support, but only when a reactive library was on the application class-path.

Contributor Checklist

Jira ticket: AIDM-447

@mcculls mcculls added type: bug inst: reactor Reactor instrumentation comp: native-image GraalVM native-image labels Nov 25, 2024
@pr-commenter
Copy link

pr-commenter bot commented Nov 25, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/fix-async-result-on-graal
git_commit_date 1732709291 1732721504
git_commit_sha 966ef84 07f2b42
release_version 1.44.0-SNAPSHOT~966ef84e87 1.44.0-SNAPSHOT~07f2b42687
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1732724079 1732724079
ci_job_id 722126861 722126861
ci_pipeline_id 50065718 50065718
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.093 s) : 0, 1093020
Total [baseline] (10.425 s) : 0, 10424791
Agent [candidate] (1.097 s) : 0, 1097170
Total [candidate] (10.45 s) : 0, 10449811
section appsec
Agent [baseline] (1.227 s) : 0, 1227360
Total [baseline] (10.752 s) : 0, 10751938
Agent [candidate] (1.235 s) : 0, 1235459
Total [candidate] (10.923 s) : 0, 10922653
section iast
Agent [baseline] (1.226 s) : 0, 1226278
Total [baseline] (10.98 s) : 0, 10979573
Agent [candidate] (1.238 s) : 0, 1237547
Total [candidate] (11.115 s) : 0, 11114778
section profiling
Agent [baseline] (1.326 s) : 0, 1325906
Total [baseline] (10.853 s) : 0, 10852907
Agent [candidate] (1.324 s) : 0, 1323840
Total [candidate] (10.853 s) : 0, 10853069
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.093 s -
Agent appsec 1.227 s 134.34 ms (12.3%)
Agent iast 1.226 s 133.258 ms (12.2%)
Agent profiling 1.326 s 232.886 ms (21.3%)
Total tracing 10.425 s -
Total appsec 10.752 s 327.147 ms (3.1%)
Total iast 10.98 s 554.782 ms (5.3%)
Total profiling 10.853 s 428.117 ms (4.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.097 s -
Agent appsec 1.235 s 138.288 ms (12.6%)
Agent iast 1.238 s 140.376 ms (12.8%)
Agent profiling 1.324 s 226.669 ms (20.7%)
Total tracing 10.45 s -
Total appsec 10.923 s 472.842 ms (4.5%)
Total iast 11.115 s 664.967 ms (6.4%)
Total profiling 10.853 s 403.258 ms (3.9%)
gantt
    title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (695.35 ms) : 0, 695350
BytebuddyAgent [candidate] (698.695 ms) : 0, 698695
GlobalTracer [baseline] (318.233 ms) : 0, 318233
GlobalTracer [candidate] (318.912 ms) : 0, 318912
AppSec [baseline] (54.424 ms) : 0, 54424
AppSec [candidate] (54.464 ms) : 0, 54464
Remote Config [baseline] (681.819 µs) : 0, 682
Remote Config [candidate] (692.719 µs) : 0, 693
Telemetry [baseline] (10.595 ms) : 0, 10595
Telemetry [candidate] (10.571 ms) : 0, 10571
section appsec
BytebuddyAgent [baseline] (712.03 ms) : 0, 712030
BytebuddyAgent [candidate] (717.623 ms) : 0, 717623
GlobalTracer [baseline] (315.352 ms) : 0, 315352
GlobalTracer [candidate] (316.828 ms) : 0, 316828
AppSec [baseline] (167.578 ms) : 0, 167578
AppSec [candidate] (168.559 ms) : 0, 168559
IAST [baseline] (19.677 ms) : 0, 19677
IAST [candidate] (19.235 ms) : 0, 19235
Remote Config [baseline] (644.692 µs) : 0, 645
Remote Config [candidate] (661.98 µs) : 0, 662
Telemetry [baseline] (8.187 ms) : 0, 8187
Telemetry [candidate] (8.333 ms) : 0, 8333
section iast
BytebuddyAgent [baseline] (817.225 ms) : 0, 817225
BytebuddyAgent [candidate] (824.171 ms) : 0, 824171
GlobalTracer [baseline] (308.566 ms) : 0, 308566
GlobalTracer [candidate] (310.662 ms) : 0, 310662
AppSec [baseline] (57.655 ms) : 0, 57655
AppSec [candidate] (58.934 ms) : 0, 58934
IAST [baseline] (20.858 ms) : 0, 20858
IAST [candidate] (21.495 ms) : 0, 21495
Remote Config [baseline] (641.612 µs) : 0, 642
Remote Config [candidate] (664.505 µs) : 0, 665
Telemetry [baseline] (7.522 ms) : 0, 7522
Telemetry [candidate] (7.675 ms) : 0, 7675
section profiling
BytebuddyAgent [baseline] (692.975 ms) : 0, 692975
BytebuddyAgent [candidate] (691.309 ms) : 0, 691309
GlobalTracer [baseline] (437.391 ms) : 0, 437391
GlobalTracer [candidate] (436.526 ms) : 0, 436526
AppSec [baseline] (53.991 ms) : 0, 53991
AppSec [candidate] (54.218 ms) : 0, 54218
Remote Config [baseline] (653.875 µs) : 0, 654
Remote Config [candidate] (653.681 µs) : 0, 654
Telemetry [baseline] (7.679 ms) : 0, 7679
Telemetry [candidate] (7.74 ms) : 0, 7740
ProfilingAgent [baseline] (93.909 ms) : 0, 93909
ProfilingAgent [candidate] (94.074 ms) : 0, 94074
Profiling [baseline] (93.933 ms) : 0, 93933
Profiling [candidate] (94.098 ms) : 0, 94098
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.097 s) : 0, 1096757
Total [baseline] (8.731 s) : 0, 8730619
Agent [candidate] (1.09 s) : 0, 1090406
Total [candidate] (8.662 s) : 0, 8662076
section iast
Agent [baseline] (1.219 s) : 0, 1218790
Total [baseline] (9.241 s) : 0, 9240663
Agent [candidate] (1.22 s) : 0, 1220281
Total [candidate] (9.214 s) : 0, 9213693
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.228 s) : 0, 1227864
Total [baseline] (9.186 s) : 0, 9186321
Agent [candidate] (1.218 s) : 0, 1218318
Total [candidate] (9.179 s) : 0, 9178795
section iast_TELEMETRY_OFF
Agent [baseline] (1.224 s) : 0, 1224482
Total [baseline] (9.273 s) : 0, 9273143
Agent [candidate] (1.22 s) : 0, 1219990
Total [candidate] (9.223 s) : 0, 9223008
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.097 s -
Agent iast 1.219 s 122.033 ms (11.1%)
Agent iast_HARDCODED_SECRET_DISABLED 1.228 s 131.108 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.224 s 127.725 ms (11.6%)
Total tracing 8.731 s -
Total iast 9.241 s 510.044 ms (5.8%)
Total iast_HARDCODED_SECRET_DISABLED 9.186 s 455.701 ms (5.2%)
Total iast_TELEMETRY_OFF 9.273 s 542.524 ms (6.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.09 s -
Agent iast 1.22 s 129.875 ms (11.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.218 s 127.912 ms (11.7%)
Agent iast_TELEMETRY_OFF 1.22 s 129.584 ms (11.9%)
Total tracing 8.662 s -
Total iast 9.214 s 551.617 ms (6.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.179 s 516.719 ms (6.0%)
Total iast_TELEMETRY_OFF 9.223 s 560.932 ms (6.5%)
gantt
    title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (698.691 ms) : 0, 698691
BytebuddyAgent [candidate] (693.101 ms) : 0, 693101
GlobalTracer [baseline] (319.885 ms) : 0, 319885
GlobalTracer [candidate] (317.637 ms) : 0, 317637
AppSec [baseline] (55.127 ms) : 0, 55127
AppSec [candidate] (54.668 ms) : 0, 54668
Remote Config [baseline] (686.911 µs) : 0, 687
Remote Config [candidate] (668.537 µs) : 0, 669
Telemetry [baseline] (8.506 ms) : 0, 8506
Telemetry [candidate] (10.62 ms) : 0, 10620
section iast
BytebuddyAgent [baseline] (811.617 ms) : 0, 811617
BytebuddyAgent [candidate] (812.524 ms) : 0, 812524
GlobalTracer [baseline] (305.944 ms) : 0, 305944
GlobalTracer [candidate] (307.184 ms) : 0, 307184
AppSec [baseline] (58.312 ms) : 0, 58312
AppSec [candidate] (57.849 ms) : 0, 57849
IAST [baseline] (20.989 ms) : 0, 20989
IAST [candidate] (20.786 ms) : 0, 20786
Remote Config [baseline] (628.777 µs) : 0, 629
Remote Config [candidate] (637.096 µs) : 0, 637
Telemetry [baseline] (7.539 ms) : 0, 7539
Telemetry [candidate] (7.505 ms) : 0, 7505
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (818.079 ms) : 0, 818079
BytebuddyAgent [candidate] (811.081 ms) : 0, 811081
GlobalTracer [baseline] (309.013 ms) : 0, 309013
GlobalTracer [candidate] (306.608 ms) : 0, 306608
AppSec [baseline] (57.65 ms) : 0, 57650
AppSec [candidate] (56.918 ms) : 0, 56918
IAST [baseline] (21.052 ms) : 0, 21052
IAST [candidate] (21.802 ms) : 0, 21802
Remote Config [baseline] (642.411 µs) : 0, 642
Remote Config [candidate] (635.69 µs) : 0, 636
Telemetry [baseline] (7.599 ms) : 0, 7599
Telemetry [candidate] (7.568 ms) : 0, 7568
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (814.143 ms) : 0, 814143
BytebuddyAgent [candidate] (813.28 ms) : 0, 813280
GlobalTracer [baseline] (308.777 ms) : 0, 308777
GlobalTracer [candidate] (306.514 ms) : 0, 306514
AppSec [baseline] (57.222 ms) : 0, 57222
AppSec [candidate] (57.879 ms) : 0, 57879
IAST [baseline] (22.462 ms) : 0, 22462
IAST [candidate] (20.425 ms) : 0, 20425
Remote Config [baseline] (620.022 µs) : 0, 620
Remote Config [candidate] (619.017 µs) : 0, 619
Telemetry [baseline] (7.531 ms) : 0, 7531
Telemetry [candidate] (7.46 ms) : 0, 7460
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-11-27T15:42:41 2024-11-27T15:49:39
git_branch master mcculls/fix-async-result-on-graal
git_commit_date 1732709291 1732721504
git_commit_sha 966ef84 07f2b42
release_version 1.44.0-SNAPSHOT~966ef84e87 1.44.0-SNAPSHOT~07f2b42687
start_time 2024-11-27T15:42:28 2024-11-27T15:49:26
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1732722932 1732722932
ci_job_id 722126862 722126862
ci_pipeline_id 50065718 50065718
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

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

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.367 ms) : 1348, 1386
.   : milestone, 1367,
appsec (1.74 ms) : 1716, 1764
.   : milestone, 1740,
appsec_no_iast (1.758 ms) : 1734, 1783
.   : milestone, 1758,
iast (1.5 ms) : 1477, 1524
.   : milestone, 1500,
profiling (1.511 ms) : 1489, 1534
.   : milestone, 1511,
tracing (1.483 ms) : 1457, 1508
.   : milestone, 1483,
section candidate
no_agent (1.363 ms) : 1344, 1382
.   : milestone, 1363,
appsec (1.769 ms) : 1744, 1794
.   : milestone, 1769,
appsec_no_iast (1.742 ms) : 1717, 1767
.   : milestone, 1742,
iast (1.518 ms) : 1496, 1541
.   : milestone, 1518,
profiling (1.503 ms) : 1479, 1527
.   : milestone, 1503,
tracing (1.471 ms) : 1446, 1496
.   : milestone, 1471,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.367 ms [1.348 ms, 1.386 ms] -
appsec 1.74 ms [1.716 ms, 1.764 ms] 373.138 µs (27.3%)
appsec_no_iast 1.758 ms [1.734 ms, 1.783 ms] 391.515 µs (28.6%)
iast 1.5 ms [1.477 ms, 1.524 ms] 133.516 µs (9.8%)
profiling 1.511 ms [1.489 ms, 1.534 ms] 144.539 µs (10.6%)
tracing 1.483 ms [1.457 ms, 1.508 ms] 115.793 µs (8.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.363 ms [1.344 ms, 1.382 ms] -
appsec 1.769 ms [1.744 ms, 1.794 ms] 405.808 µs (29.8%)
appsec_no_iast 1.742 ms [1.717 ms, 1.767 ms] 379.117 µs (27.8%)
iast 1.518 ms [1.496 ms, 1.541 ms] 155.298 µs (11.4%)
profiling 1.503 ms [1.479 ms, 1.527 ms] 140.051 µs (10.3%)
tracing 1.471 ms [1.446 ms, 1.496 ms] 108.081 µs (7.9%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
    dateFormat X
    axisFormat %s
section baseline
no_agent (375.227 µs) : 355, 396
.   : milestone, 375,
iast (489.754 µs) : 468, 511
.   : milestone, 490,
iast_FULL (647.43 µs) : 626, 669
.   : milestone, 647,
iast_GLOBAL (518.248 µs) : 496, 541
.   : milestone, 518,
iast_HARDCODED_SECRET_DISABLED (496.784 µs) : 475, 518
.   : milestone, 497,
iast_INACTIVE (455.037 µs) : 434, 476
.   : milestone, 455,
iast_TELEMETRY_OFF (485.606 µs) : 464, 507
.   : milestone, 486,
tracing (456.424 µs) : 434, 478
.   : milestone, 456,
section candidate
no_agent (378.748 µs) : 358, 400
.   : milestone, 379,
iast (489.843 µs) : 468, 511
.   : milestone, 490,
iast_FULL (651.274 µs) : 630, 673
.   : milestone, 651,
iast_GLOBAL (520.181 µs) : 499, 542
.   : milestone, 520,
iast_HARDCODED_SECRET_DISABLED (486.551 µs) : 465, 508
.   : milestone, 487,
iast_INACTIVE (447.405 µs) : 427, 468
.   : milestone, 447,
iast_TELEMETRY_OFF (479.103 µs) : 458, 501
.   : milestone, 479,
tracing (448.025 µs) : 427, 469
.   : milestone, 448,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 375.227 µs [354.587 µs, 395.867 µs] -
iast 489.754 µs [468.24 µs, 511.269 µs] 114.527 µs (30.5%)
iast_FULL 647.43 µs [625.882 µs, 668.978 µs] 272.203 µs (72.5%)
iast_GLOBAL 518.248 µs [495.952 µs, 540.543 µs] 143.021 µs (38.1%)
iast_HARDCODED_SECRET_DISABLED 496.784 µs [475.152 µs, 518.416 µs] 121.557 µs (32.4%)
iast_INACTIVE 455.037 µs [434.188 µs, 475.886 µs] 79.81 µs (21.3%)
iast_TELEMETRY_OFF 485.606 µs [463.844 µs, 507.368 µs] 110.379 µs (29.4%)
tracing 456.424 µs [434.478 µs, 478.371 µs] 81.197 µs (21.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 378.748 µs [357.595 µs, 399.901 µs] -
iast 489.843 µs [468.375 µs, 511.311 µs] 111.095 µs (29.3%)
iast_FULL 651.274 µs [629.694 µs, 672.854 µs] 272.527 µs (72.0%)
iast_GLOBAL 520.181 µs [498.636 µs, 541.727 µs] 141.434 µs (37.3%)
iast_HARDCODED_SECRET_DISABLED 486.551 µs [465.447 µs, 507.655 µs] 107.803 µs (28.5%)
iast_INACTIVE 447.405 µs [426.722 µs, 468.089 µs] 68.658 µs (18.1%)
iast_TELEMETRY_OFF 479.103 µs [457.501 µs, 500.705 µs] 100.355 µs (26.5%)
tracing 448.025 µs [427.305 µs, 468.746 µs] 69.278 µs (18.3%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/fix-async-result-on-graal
git_commit_date 1732709291 1732721504
git_commit_sha 966ef84 07f2b42
release_version 1.44.0-SNAPSHOT~966ef84e87 1.44.0-SNAPSHOT~07f2b42687
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1732723533 1732723533
ci_job_id 722126863 722126863
ci_pipeline_id 50065718 50065718
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant appsec appsec

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.437 s) : 15437000, 15437000
.   : milestone, 15437000,
appsec (15.112 s) : 15112000, 15112000
.   : milestone, 15112000,
iast (18.769 s) : 18769000, 18769000
.   : milestone, 18769000,
iast_GLOBAL (17.776 s) : 17776000, 17776000
.   : milestone, 17776000,
profiling (14.747 s) : 14747000, 14747000
.   : milestone, 14747000,
tracing (14.885 s) : 14885000, 14885000
.   : milestone, 14885000,
section candidate
no_agent (14.919 s) : 14919000, 14919000
.   : milestone, 14919000,
appsec (14.708 s) : 14708000, 14708000
.   : milestone, 14708000,
iast (18.597 s) : 18597000, 18597000
.   : milestone, 18597000,
iast_GLOBAL (18.206 s) : 18206000, 18206000
.   : milestone, 18206000,
profiling (14.893 s) : 14893000, 14893000
.   : milestone, 14893000,
tracing (15.03 s) : 15030000, 15030000
.   : milestone, 15030000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.437 s [15.437 s, 15.437 s] -
appsec 15.112 s [15.112 s, 15.112 s] -325.0 ms (-2.1%)
iast 18.769 s [18.769 s, 18.769 s] 3.332 s (21.6%)
iast_GLOBAL 17.776 s [17.776 s, 17.776 s] 2.339 s (15.2%)
profiling 14.747 s [14.747 s, 14.747 s] -690.0 ms (-4.5%)
tracing 14.885 s [14.885 s, 14.885 s] -552.0 ms (-3.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.919 s [14.919 s, 14.919 s] -
appsec 14.708 s [14.708 s, 14.708 s] -211.0 ms (-1.4%)
iast 18.597 s [18.597 s, 18.597 s] 3.678 s (24.7%)
iast_GLOBAL 18.206 s [18.206 s, 18.206 s] 3.287 s (22.0%)
profiling 14.893 s [14.893 s, 14.893 s] -26.0 ms (-0.2%)
tracing 15.03 s [15.03 s, 15.03 s] 111.0 ms (0.7%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~07f2b42687, baseline=1.44.0-SNAPSHOT~966ef84e87
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.465 ms) : 1453, 1476
.   : milestone, 1465,
appsec (2.339 ms) : 2298, 2380
.   : milestone, 2339,
iast (2.096 ms) : 2044, 2149
.   : milestone, 2096,
iast_GLOBAL (2.124 ms) : 2071, 2177
.   : milestone, 2124,
profiling (1.948 ms) : 1905, 1990
.   : milestone, 1948,
tracing (1.923 ms) : 1883, 1963
.   : milestone, 1923,
section candidate
no_agent (1.466 ms) : 1455, 1477
.   : milestone, 1466,
appsec (2.324 ms) : 2282, 2365
.   : milestone, 2324,
iast (2.083 ms) : 2031, 2136
.   : milestone, 2083,
iast_GLOBAL (2.122 ms) : 2070, 2174
.   : milestone, 2122,
profiling (1.945 ms) : 1903, 1987
.   : milestone, 1945,
tracing (1.921 ms) : 1881, 1961
.   : milestone, 1921,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.465 ms [1.453 ms, 1.476 ms] -
appsec 2.339 ms [2.298 ms, 2.38 ms] 874.32 µs (59.7%)
iast 2.096 ms [2.044 ms, 2.149 ms] 631.742 µs (43.1%)
iast_GLOBAL 2.124 ms [2.071 ms, 2.177 ms] 659.103 µs (45.0%)
profiling 1.948 ms [1.905 ms, 1.99 ms] 482.912 µs (33.0%)
tracing 1.923 ms [1.883 ms, 1.963 ms] 458.401 µs (31.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.466 ms [1.455 ms, 1.477 ms] -
appsec 2.324 ms [2.282 ms, 2.365 ms] 857.609 µs (58.5%)
iast 2.083 ms [2.031 ms, 2.136 ms] 617.442 µs (42.1%)
iast_GLOBAL 2.122 ms [2.07 ms, 2.174 ms] 655.934 µs (44.7%)
profiling 1.945 ms [1.903 ms, 1.987 ms] 478.558 µs (32.6%)
tracing 1.921 ms [1.881 ms, 1.961 ms] 455.14 µs (31.0%)

@mcculls mcculls force-pushed the mcculls/fix-async-result-on-graal branch 3 times, most recently from ef6e3dc to a2c6f0a Compare November 27, 2024 13:47
@mcculls mcculls force-pushed the mcculls/fix-async-result-on-graal branch from a2c6f0a to 07f2b42 Compare November 27, 2024 15:32
@mcculls mcculls marked this pull request as ready for review November 27, 2024 16:03
@mcculls mcculls requested review from a team as code owners November 27, 2024 16:03
@mcculls mcculls requested a review from amarziali November 27, 2024 16:03
Copy link
Collaborator

@amarziali amarziali left a comment

Choose a reason for hiding this comment

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

Thank you for the nice refactoring

@@ -83,7 +83,7 @@ public static void after(@Advice.Enter final AgentScope scope) {
public static class AsyncExtensionInstallAdvice {
@Advice.OnMethodExit(suppress = Throwable.class)
public static void init() {
ReactorAsyncResultSupportExtension.initialize();
ReactorAsyncResultExtension.initialize();
Copy link
Collaborator

Choose a reason for hiding this comment

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

I also tried to kick it in on the typeInitializer but it did not work

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same - I have some ideas to improve this kind of pre-initialization, but need to run further experiments.

So far one approach which shows promise is to trigger their initialization during the transformation step, similar to how we inject the helpers. However this needs some additional support to work with native-image because the initialization is then not tied to the stock class-loading mechanism, but the transformation mechanism on top of it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

💡 #8028

@mcculls mcculls merged commit 207f770 into master Nov 27, 2024
104 checks passed
@mcculls mcculls deleted the mcculls/fix-async-result-on-graal branch November 27, 2024 19:32
@github-actions github-actions bot added this to the 1.44.0 milestone Nov 27, 2024
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Dec 16, 2024
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.49.0` -> `2.50.0` |
|
[com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.82.0` -> `6.83.0` |
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.20.7` -> `3.21.0` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.24.3` -> `2.25.1` |
|
[com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.58.0` -> `2.59.0` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | patch | `2.6.0` ->
`2.6.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
|
[com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |

---

### Release Notes

<details>
<summary>googleapis/sdk-platform-java
(com.google.api.grpc:proto-google-common-protos)</summary>

###
[`v2.50.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2500-2024-11-14)

##### Features

- Add experimental S2A integration in client libraries grpc transport
([#&#8203;3326](googleapis/sdk-platform-java#3326))
([1138ca6](googleapis/sdk-platform-java@1138ca6))
- enable selective generation based on service config include list
([#&#8203;3323](googleapis/sdk-platform-java#3323))
([0cddadb](googleapis/sdk-platform-java@0cddadb))
- introduce `java.time` to java-core
([#&#8203;3330](googleapis/sdk-platform-java#3330))
([f202c3b](googleapis/sdk-platform-java@f202c3b))
- Update Gapic-Generator to generate libraries using `java.time` methods
([#&#8203;3321](googleapis/sdk-platform-java#3321))
([b21c9a4](googleapis/sdk-platform-java@b21c9a4))

##### Bug Fixes

- Fix flaky test
ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart
([#&#8203;3335](googleapis/sdk-platform-java#3335))
([e73740d](googleapis/sdk-platform-java@e73740d))
- httpjson callables to trace attempts (started, failed)
([#&#8203;3300](googleapis/sdk-platform-java#3300))
([15a64ee](googleapis/sdk-platform-java@15a64ee))
- instantiate GaxProperties at build time to ensure we get the protobuf
version
([#&#8203;3365](googleapis/sdk-platform-java#3365))
([bb2a3be](googleapis/sdk-platform-java@bb2a3be))
- protobuf version not always getting set in headers
([#&#8203;3322](googleapis/sdk-platform-java#3322))
([7f6e470](googleapis/sdk-platform-java@7f6e470))
- use BuildKit instead of legacy builder to build the Hermetic Build
images
([#&#8203;3338](googleapis/sdk-platform-java#3338))
([222fb45](googleapis/sdk-platform-java@222fb45))

##### Dependencies

- update google auth library dependencies to v1.30.0
([#&#8203;3367](googleapis/sdk-platform-java#3367))
([a31c682](googleapis/sdk-platform-java@a31c682))
- update grpc dependencies to v1.68.1
([#&#8203;3240](googleapis/sdk-platform-java#3240))
([c8e3941](googleapis/sdk-platform-java@c8e3941))

##### Documentation

- fix list num
([#&#8203;3356](googleapis/sdk-platform-java#3356))
([b7d6296](googleapis/sdk-platform-java@b7d6296))
- **hermetic-build:** indicate usage of Docker Buildkit in development
guide
([#&#8203;3337](googleapis/sdk-platform-java#3337))
([01e742d](googleapis/sdk-platform-java@01e742d))
- modify hermetic build docs
([#&#8203;3331](googleapis/sdk-platform-java#3331))
([25023af](googleapis/sdk-platform-java@25023af))

</details>

<details>
<summary>googleapis/java-spanner
(com.google.cloud:google-cloud-spanner)</summary>

###
[`v6.83.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6830-2024-12-13)

##### Features

- Add Metrics host for built in metrics
([#&#8203;3519](googleapis/java-spanner#3519))
([4ed455a](googleapis/java-spanner@4ed455a))
- Add opt-in for using multiplexed sessions for blind writes
([#&#8203;3540](googleapis/java-spanner#3540))
([216f53e](googleapis/java-spanner@216f53e))
- Add UUID in Spanner TypeCode enum
([41f83dc](googleapis/java-spanner@41f83dc))
- Introduce java.time variables and methods
([#&#8203;3495](googleapis/java-spanner#3495))
([8a7d533](googleapis/java-spanner@8a7d533))
- **spanner:** Support multiplexed session for Partitioned operations
([#&#8203;3231](googleapis/java-spanner#3231))
([4501a3e](googleapis/java-spanner@4501a3e))
- Support 'set local' for retry_aborts_internally
([#&#8203;3532](googleapis/java-spanner#3532))
([331942f](googleapis/java-spanner@331942f))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([41f83dc](googleapis/java-spanner@41f83dc))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;3549](googleapis/java-spanner#3549))
([6235f0f](googleapis/java-spanner@6235f0f))

</details>

<details>
<summary>googleapis/java-logging
(com.google.cloud:google-cloud-logging)</summary>

###
[`v3.21.0`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3210-2024-12-13)

##### Features

- Introduce `java.time` methods
([#&#8203;1729](googleapis/java-logging#1729))
([323eb33](googleapis/java-logging@323eb33))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([04d8868](googleapis/java-logging@04d8868))

##### Dependencies

- Update dependency io.opentelemetry:opentelemetry-bom to v1.45.0
([#&#8203;1638](googleapis/java-logging#1638))
([7e007d4](googleapis/java-logging@7e007d4))
- Update sdk platform java dependencies
([#&#8203;1736](googleapis/java-logging#1736))
([88b4cdf](googleapis/java-logging@88b4cdf))

</details>

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.25.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2251-2024-12-13)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([106ee4d](googleapis/java-datastore@106ee4d))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;1685](googleapis/java-datastore#1685))
([4372350](googleapis/java-datastore@4372350))

###
[`v2.25.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2250-2024-12-11)

##### Features

- Introduce `java.time` methods and variables
([#&#8203;1671](googleapis/java-datastore#1671))
([5a78a80](googleapis/java-datastore@5a78a80))

##### Dependencies

- Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0
([#&#8203;1605](googleapis/java-datastore#1605))
([5c6a678](googleapis/java-datastore@5c6a678))

##### Documentation

- Update gapic upgrade installation instructions
([#&#8203;1677](googleapis/java-datastore#1677))
([b3fbfcc](googleapis/java-datastore@b3fbfcc))

</details>

<details>
<summary>autonomousapps/dependency-analysis-android-gradle-plugin
(com.autonomousapps.dependency-analysis)</summary>

###
[`v2.6.1`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-261)

-   \[Fix]: `superClassName` can be null (Object has no superclass).

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.44.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.1):
1.44.1

##### Components

##### Continuous Integration Visibility

- 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks
([#&#8203;8089](DataDog/dd-trace-java#8089) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

###
[`v1.44.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.44.0):
1.44.0

##### Known Issues

> \[!WARNING]\
> This release contains a known issue that causes failures when using
Test Optimization to trace JUnit 5 tests in a Maven project where Maven
Surefire is configured with `forkCount` > 1.
> The issue is fixed in v1.44.1

##### Breaking Changes

> \[!WARNING]\
> Support for `X-Forwarded` header is dropped from default client IP
resolution.
> It can still be re-activated using the
`dd.trace.client-ip-header=x-forwarded` system property, or the
`DD_TRACE_CLIENT_IP_HEADER=x-forwarded` environment variable. See
[#&#8203;7946](DataDog/dd-trace-java#7946).

##### Components

##### Application Security Management (IAST)

- ✨ Set unexpected IAST exceptions to debug log level
([#&#8203;8044](DataDog/dd-trace-java#8044) -
[@&#8203;smola](https://github.com/smola))
- ✨ Increase IAST propagation to StringBuffer subSequence
([#&#8203;8038](DataDog/dd-trace-java#8038) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder subSequence
([#&#8203;8026](DataDog/dd-trace-java#8026) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST propagation to String valueOf
([#&#8203;8013](DataDog/dd-trace-java#8013) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder append
([#&#8203;8010](DataDog/dd-trace-java#8010) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- ✨ Generate Muzzle classes for Groovy instrumentations
([#&#8203;8004](DataDog/dd-trace-java#8004) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Continuous Integration Visibility

- ✨ Support distributed traces in tests
([#&#8203;8078](DataDog/dd-trace-java#8078) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement fail-fast tests ordering for JUnit 5
([#&#8203;8055](DataDog/dd-trace-java#8055) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Mark JUnit 5 setup and teardown action spans as failed if
there is an error
([#&#8203;8033](DataDog/dd-trace-java#8033) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tracing of setup and teardown actions in JUnit 4
([#&#8203;8030](DataDog/dd-trace-java#8030) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Improve crash tracking install logging
([#&#8203;8045](DataDog/dd-trace-java#8045) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Data Streams Monitoring

- 🐛 Add Data Streams support in AWS SQS without raw message delivery
([#&#8203;8071](DataDog/dd-trace-java#8071) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))
- ✨ Add new tag for enabled products / features to DSM
checkpoints
([#&#8203;8051](DataDog/dd-trace-java#8051) -
[@&#8203;kr-igor](https://github.com/kr-igor))
- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Dynamic Instrumentation

- ✨ Add Micronaut 4 support for code origin for spans
([#&#8203;8039](DataDog/dd-trace-java#8039) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Refactor probe matching for methods
([#&#8203;8021](DataDog/dd-trace-java#8021) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Update the CodeOriginProbe fingerprint to not rely on a
stack walk
([#&#8203;8016](DataDog/dd-trace-java#8016) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Implement code origin support for grpc server entry spans
([#&#8203;7942](DataDog/dd-trace-java#7942) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### GraalVM native-image

- 🐛 Update Graal build-time instrumentation config for
TracePropagationStyle
([#&#8203;8065](DataDog/dd-trace-java#8065) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Fix NoClassDefFoundError: Could not initialize class
DDSpanLink$EncoderHolder in Graal native-image
([#&#8203;8036](DataDog/dd-trace-java#8036) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### OpenTracing

- 🧹 Custom ScopeManagers are deprecated and will be removed in a
future release of dd-trace-ot
([#&#8203;8058](DataDog/dd-trace-java#8058) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Tracer core

- ✨🧪 Service naming: split by jee deployment
([#&#8203;8064](DataDog/dd-trace-java#8064) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Exclude jboss mdb proxies from instrumenting
([#&#8203;8061](DataDog/dd-trace-java#8061) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add a built-in trace interceptor for keeping traces
depending of their latency
([#&#8203;8040](DataDog/dd-trace-java#8040) -
[@&#8203;cecile75](https://github.com/cecile75))
- 💡 Introduce marker mechanism for eagerly initializing helpers
([#&#8203;8028](DataDog/dd-trace-java#8028) -
[@&#8203;mcculls](https://github.com/mcculls))
- 💡 Add JSON component
([#&#8203;7973](DataDog/dd-trace-java#7973) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨⚠️ Remove support for X-Forwarded in client IP
resolution
([#&#8203;7946](DataDog/dd-trace-java#7946) -
[@&#8203;smola](https://github.com/smola))

##### Instrumentations

##### Apache HttpComponents

- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### gRPC instrumentation

- 🐛 Use lower priorities for grpc server errors
([#&#8203;8043](DataDog/dd-trace-java#8043) -
[@&#8203;amarziali](https://github.com/amarziali))

##### JDBC instrumentation

- ✨ Add trace injection for prepared statements in Postgres
([#&#8203;7940](DataDog/dd-trace-java#7940) -
[@&#8203;nenadnoveljic](https://github.com/nenadnoveljic))

##### JMS instrumentation

- 🐛 Protect mdb from instrumenting multiple time the same event
([#&#8203;8062](DataDog/dd-trace-java#8062) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Kafka instrumentation

- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### OpenTelemetry instrumentation

- 🐛 Support using OpenTelemetry Event API inside `@WithSpan`
annotated method
([#&#8203;8019](DataDog/dd-trace-java#8019) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Reactor instrumentation

- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Spring instrumentation

- 🐛 Avoid double instrumenting lambdas on latest spring scheduling
([#&#8203;8005](DataDog/dd-trace-java#8005) -
[@&#8203;amarziali](https://github.com/amarziali))

##### All other instrumentations

- 🐛 Twilio: allow service name flattening
([#&#8203;8025](DataDog/dd-trace-java#8025) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Instrument Mulesoft 4.5.0+
([#&#8203;7981](DataDog/dd-trace-java#7981) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

<details>
<summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary>

###
[`v1.12.780`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112780-2024-12-11)

[Compare
Source](aws/aws-sdk-java@1.12.779...1.12.780)

#### **Amazon Simple Storage Service**

-   ### Bugfixes
- AWS SDK for Java 1.x now includes additional validation for Amazon S3
client APIs to handle scenarios where an empty string ('') is passed as
the key argument to the following operations: PutObject, DeleteObject,
ListObjects, GetObjectMetaData, ListObjectsV2, SetObjectTagging,
GetObjectTagging, SetObjectAcl, GetObjectAcl, SetObjectLegalHold,
GetObjectLegalHold, CopyObject, CopyPart, SelectObjectContent,
SetObjectRetention, GetObjectRetention, AbortMultipartUpload,
CompleteMultipartUpload, InitiateMultipartUpload, ListParts, UploadPart,
RestoreObjectV2, and RestoreObject. The SDK will validate the key
argument and throw an exception if it is an empty string, ensuring
correct and expected behavior.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 69831bc62ea4d80cdcd42cef2aa9bd8eda28ae8c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants