Skip to content

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 Bug report and fix 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
Contributor

@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

@Advice.OnMethodExit(suppress = Throwable.class)
public static void init() {
ReactorAsyncResultSupportExtension.initialize();
ReactorAsyncResultExtension.initialize();
Copy link
Contributor

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

comp: native-image GraalVM native-image inst: reactor Reactor instrumentation type: bug Bug report and fix type: refactoring

3 participants