Use modern Logback for Java 21+ tests with better Virtual Threads support.#10551
Open
AlexeyKuznetsov-DD wants to merge 2 commits intomasterfrom
Open
Use modern Logback for Java 21+ tests with better Virtual Threads support.#10551AlexeyKuznetsov-DD wants to merge 2 commits intomasterfrom
AlexeyKuznetsov-DD wants to merge 2 commits intomasterfrom
Conversation
sarahchen6
approved these changes
Feb 6, 2026
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 62 metrics, 9 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.07 s) : 0, 1069577
Total [baseline] (10.936 s) : 0, 10936251
Agent [candidate] (1.072 s) : 0, 1071527
Total [candidate] (10.894 s) : 0, 10893720
section appsec
Agent [baseline] (1.239 s) : 0, 1239435
Total [baseline] (11.093 s) : 0, 11092795
Agent [candidate] (1.241 s) : 0, 1240677
Total [candidate] (11.093 s) : 0, 11092591
section iast
Agent [baseline] (1.25 s) : 0, 1249971
Total [baseline] (11.179 s) : 0, 11178652
Agent [candidate] (1.234 s) : 0, 1234240
Total [candidate] (11.19 s) : 0, 11189764
section profiling
Agent [baseline] (1.189 s) : 0, 1189130
Total [baseline] (10.967 s) : 0, 10966650
Agent [candidate] (1.207 s) : 0, 1206535
Total [candidate] (11.053 s) : 0, 11052589
gantt
title petclinic - break down per module: candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.18 ms) : 0, 1180
crashtracking [candidate] (1.192 ms) : 0, 1192
BytebuddyAgent [baseline] (631.125 ms) : 0, 631125
BytebuddyAgent [candidate] (633.137 ms) : 0, 633137
AgentMeter [baseline] (28.987 ms) : 0, 28987
AgentMeter [candidate] (29.15 ms) : 0, 29150
GlobalTracer [baseline] (258.551 ms) : 0, 258551
GlobalTracer [candidate] (259.27 ms) : 0, 259270
AppSec [baseline] (32.827 ms) : 0, 32827
AppSec [candidate] (33.02 ms) : 0, 33020
Debugger [baseline] (62.379 ms) : 0, 62379
Debugger [candidate] (62.749 ms) : 0, 62749
Remote Config [baseline] (633.555 µs) : 0, 634
Remote Config [candidate] (633.88 µs) : 0, 634
Telemetry [baseline] (11.623 ms) : 0, 11623
Telemetry [candidate] (11.564 ms) : 0, 11564
Flare Poller [baseline] (6.885 ms) : 0, 6885
Flare Poller [candidate] (5.337 ms) : 0, 5337
section appsec
crashtracking [baseline] (1.176 ms) : 0, 1176
crashtracking [candidate] (1.181 ms) : 0, 1181
BytebuddyAgent [baseline] (658.421 ms) : 0, 658421
BytebuddyAgent [candidate] (658.714 ms) : 0, 658714
AgentMeter [baseline] (11.969 ms) : 0, 11969
AgentMeter [candidate] (11.967 ms) : 0, 11967
GlobalTracer [baseline] (258.949 ms) : 0, 258949
GlobalTracer [candidate] (259.117 ms) : 0, 259117
IAST [baseline] (25.309 ms) : 0, 25309
IAST [candidate] (25.28 ms) : 0, 25280
AppSec [baseline] (167.757 ms) : 0, 167757
AppSec [candidate] (168.198 ms) : 0, 168198
Debugger [baseline] (67.197 ms) : 0, 67197
Debugger [candidate] (67.433 ms) : 0, 67433
Remote Config [baseline] (670.496 µs) : 0, 670
Remote Config [candidate] (671.726 µs) : 0, 672
Telemetry [baseline] (9.096 ms) : 0, 9096
Telemetry [candidate] (9.085 ms) : 0, 9085
Flare Poller [baseline] (3.623 ms) : 0, 3623
Flare Poller [candidate] (3.69 ms) : 0, 3690
section iast
crashtracking [baseline] (1.199 ms) : 0, 1199
crashtracking [candidate] (1.175 ms) : 0, 1175
BytebuddyAgent [baseline] (808.533 ms) : 0, 808533
BytebuddyAgent [candidate] (796.993 ms) : 0, 796993
AgentMeter [baseline] (11.754 ms) : 0, 11754
AgentMeter [candidate] (11.28 ms) : 0, 11280
GlobalTracer [baseline] (250.819 ms) : 0, 250819
GlobalTracer [candidate] (248.93 ms) : 0, 248930
IAST [baseline] (27.414 ms) : 0, 27414
IAST [candidate] (27.071 ms) : 0, 27071
AppSec [baseline] (34.336 ms) : 0, 34336
AppSec [candidate] (33.26 ms) : 0, 33260
Debugger [baseline] (67.44 ms) : 0, 67440
Debugger [candidate] (67.315 ms) : 0, 67315
Remote Config [baseline] (549.418 µs) : 0, 549
Remote Config [candidate] (539.617 µs) : 0, 540
Telemetry [baseline] (8.796 ms) : 0, 8796
Telemetry [candidate] (8.805 ms) : 0, 8805
Flare Poller [baseline] (3.445 ms) : 0, 3445
Flare Poller [candidate] (3.535 ms) : 0, 3535
section profiling
crashtracking [baseline] (1.216 ms) : 0, 1216
crashtracking [candidate] (1.236 ms) : 0, 1236
BytebuddyAgent [baseline] (681.521 ms) : 0, 681521
BytebuddyAgent [candidate] (691.873 ms) : 0, 691873
AgentMeter [baseline] (8.778 ms) : 0, 8778
AgentMeter [candidate] (8.858 ms) : 0, 8858
GlobalTracer [baseline] (215.955 ms) : 0, 215955
GlobalTracer [candidate] (218.379 ms) : 0, 218379
AppSec [baseline] (32.253 ms) : 0, 32253
AppSec [candidate] (33.006 ms) : 0, 33006
Debugger [baseline] (67.731 ms) : 0, 67731
Debugger [candidate] (68.274 ms) : 0, 68274
Remote Config [baseline] (605.261 µs) : 0, 605
Remote Config [candidate] (617.213 µs) : 0, 617
Telemetry [baseline] (8.833 ms) : 0, 8833
Telemetry [candidate] (8.937 ms) : 0, 8937
Flare Poller [baseline] (3.741 ms) : 0, 3741
Flare Poller [candidate] (3.801 ms) : 0, 3801
ProfilingAgent [baseline] (98.617 ms) : 0, 98617
ProfilingAgent [candidate] (100.788 ms) : 0, 100788
Profiling [baseline] (99.179 ms) : 0, 99179
Profiling [candidate] (101.374 ms) : 0, 101374
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.072 s) : 0, 1071738
Total [baseline] (8.753 s) : 0, 8753417
Agent [candidate] (1.068 s) : 0, 1067947
Total [candidate] (8.762 s) : 0, 8761887
section iast
Agent [baseline] (1.238 s) : 0, 1237770
Total [baseline] (9.387 s) : 0, 9387439
Agent [candidate] (1.231 s) : 0, 1231436
Total [candidate] (9.391 s) : 0, 9390992
gantt
title insecure-bank - break down per module: candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.217 ms) : 0, 1217
crashtracking [candidate] (1.189 ms) : 0, 1189
BytebuddyAgent [baseline] (632.665 ms) : 0, 632665
BytebuddyAgent [candidate] (630.056 ms) : 0, 630056
AgentMeter [baseline] (29.211 ms) : 0, 29211
AgentMeter [candidate] (28.997 ms) : 0, 28997
GlobalTracer [baseline] (259.416 ms) : 0, 259416
GlobalTracer [candidate] (258.246 ms) : 0, 258246
AppSec [baseline] (33.063 ms) : 0, 33063
AppSec [candidate] (32.824 ms) : 0, 32824
Debugger [baseline] (59.978 ms) : 0, 59978
Debugger [candidate] (60.412 ms) : 0, 60412
Remote Config [baseline] (638.382 µs) : 0, 638
Remote Config [candidate] (636.517 µs) : 0, 637
Telemetry [baseline] (11.534 ms) : 0, 11534
Telemetry [candidate] (13.083 ms) : 0, 13083
Flare Poller [baseline] (8.535 ms) : 0, 8535
Flare Poller [candidate] (7.002 ms) : 0, 7002
section iast
crashtracking [baseline] (1.184 ms) : 0, 1184
crashtracking [candidate] (1.181 ms) : 0, 1181
BytebuddyAgent [baseline] (801.459 ms) : 0, 801459
BytebuddyAgent [candidate] (795.545 ms) : 0, 795545
AgentMeter [baseline] (11.461 ms) : 0, 11461
AgentMeter [candidate] (11.24 ms) : 0, 11240
GlobalTracer [baseline] (248.848 ms) : 0, 248848
GlobalTracer [candidate] (248.473 ms) : 0, 248473
IAST [baseline] (26.933 ms) : 0, 26933
IAST [candidate] (26.849 ms) : 0, 26849
AppSec [baseline] (33.827 ms) : 0, 33827
AppSec [candidate] (34.755 ms) : 0, 34755
Debugger [baseline] (65.736 ms) : 0, 65736
Debugger [candidate] (65.265 ms) : 0, 65265
Remote Config [baseline] (553.612 µs) : 0, 554
Remote Config [candidate] (541.982 µs) : 0, 542
Telemetry [baseline] (8.809 ms) : 0, 8809
Telemetry [candidate] (8.741 ms) : 0, 8741
Flare Poller [baseline] (3.519 ms) : 0, 3519
Flare Poller [candidate] (3.492 ms) : 0, 3492
LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 0 performance regressions! Performance is the same for 16 metrics, 18 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section baseline
no_agent (18.382 ms) : 18192, 18572
. : milestone, 18382,
appsec (18.961 ms) : 18771, 19151
. : milestone, 18961,
code_origins (17.876 ms) : 17698, 18055
. : milestone, 17876,
iast (17.658 ms) : 17482, 17834
. : milestone, 17658,
profiling (18.428 ms) : 18243, 18613
. : milestone, 18428,
tracing (17.927 ms) : 17751, 18103
. : milestone, 17927,
section candidate
no_agent (17.317 ms) : 17145, 17490
. : milestone, 17317,
appsec (18.603 ms) : 18417, 18789
. : milestone, 18603,
code_origins (17.629 ms) : 17455, 17803
. : milestone, 17629,
iast (17.921 ms) : 17744, 18098
. : milestone, 17921,
profiling (18.943 ms) : 18751, 19136
. : milestone, 18943,
tracing (18.597 ms) : 18412, 18783
. : milestone, 18597,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section baseline
no_agent (1.197 ms) : 1185, 1208
. : milestone, 1197,
iast (3.223 ms) : 3177, 3268
. : milestone, 3223,
iast_FULL (6.127 ms) : 6063, 6191
. : milestone, 6127,
iast_GLOBAL (3.682 ms) : 3615, 3750
. : milestone, 3682,
profiling (2.11 ms) : 2091, 2129
. : milestone, 2110,
tracing (1.768 ms) : 1753, 1782
. : milestone, 1768,
section candidate
no_agent (1.192 ms) : 1180, 1204
. : milestone, 1192,
iast (3.228 ms) : 3182, 3275
. : milestone, 3228,
iast_FULL (6.017 ms) : 5955, 6078
. : milestone, 6017,
iast_GLOBAL (3.539 ms) : 3482, 3595
. : milestone, 3539,
profiling (1.997 ms) : 1979, 2015
. : milestone, 1997,
tracing (1.884 ms) : 1867, 1901
. : milestone, 1884,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section baseline
no_agent (14.965 s) : 14965000, 14965000
. : milestone, 14965000,
appsec (14.995 s) : 14995000, 14995000
. : milestone, 14995000,
iast (18.256 s) : 18256000, 18256000
. : milestone, 18256000,
iast_GLOBAL (17.671 s) : 17671000, 17671000
. : milestone, 17671000,
profiling (15.001 s) : 15001000, 15001000
. : milestone, 15001000,
tracing (14.494 s) : 14494000, 14494000
. : milestone, 14494000,
section candidate
no_agent (15.476 s) : 15476000, 15476000
. : milestone, 15476000,
appsec (14.945 s) : 14945000, 14945000
. : milestone, 14945000,
iast (18.119 s) : 18119000, 18119000
. : milestone, 18119000,
iast_GLOBAL (18.01 s) : 18010000, 18010000
. : milestone, 18010000,
profiling (14.952 s) : 14952000, 14952000
. : milestone, 14952000,
tracing (14.592 s) : 14592000, 14592000
. : milestone, 14592000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~9a3fc449f5, baseline=1.60.0-SNAPSHOT~8880e3d7c8
dateFormat X
axisFormat %s
section baseline
no_agent (1.474 ms) : 1463, 1486
. : milestone, 1474,
appsec (3.777 ms) : 3557, 3997
. : milestone, 3777,
iast (2.259 ms) : 2190, 2328
. : milestone, 2259,
iast_GLOBAL (2.297 ms) : 2227, 2366
. : milestone, 2297,
profiling (2.098 ms) : 2042, 2154
. : milestone, 2098,
tracing (2.061 ms) : 2007, 2114
. : milestone, 2061,
section candidate
no_agent (1.475 ms) : 1463, 1486
. : milestone, 1475,
appsec (3.758 ms) : 3539, 3977
. : milestone, 3758,
iast (2.255 ms) : 2186, 2324
. : milestone, 2255,
iast_GLOBAL (2.297 ms) : 2228, 2367
. : milestone, 2297,
profiling (2.085 ms) : 2030, 2140
. : milestone, 2085,
tracing (2.067 ms) : 2014, 2121
. : milestone, 2067,
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Does This Do
This PR reworks #9435 and follows up on #10535.
We upgrade Logback from
1.2.13to a modern version that properly supports Java 21 and Virtual Threads. The currently used Logback version is known to have issues in Virtual Thread environments (see the Logback issue for details), which leads to intermittent CI hangs on Java 21.Motivation
Unblock CI on Java 21+ and keep it green..
Additional Notes
With Logback
1.2.13, jobs frequently hang on Java 21 in GitLab CI. A typical blocked call path looks like this:The root cause is that legacy Logback is not aware of Virtual Threads. When multiple virtual threads share the same carrier thread, Logback’s internal locking can lead to deadlocks.
Since this behavior only manifests on JDK 21+, upgrading to a Logback version designed with Java 21 and Virtual Thread support is the correct long-term fix.
Why not slf4j-simple?
slf4j-simpleworks because it is truly simple: it has no internal locking and just writes to stdout. However:Using a modern Logback version keeps logging consistent across the codebase while properly supporting Virtual Threads.