Skip to content

Fix flaky Synapse 3.0 test assertions#10796

Closed
bm1549 wants to merge 6 commits intomasterfrom
brian.marks/fix-synapse-flaky-tests
Closed

Fix flaky Synapse 3.0 test assertions#10796
bm1549 wants to merge 6 commits intomasterfrom
brian.marks/fix-synapse-flaky-tests

Conversation

@bm1549
Copy link
Copy Markdown
Contributor

@bm1549 bm1549 commented Mar 10, 2026

What Does This Do

Fixes intermittent assertion failures in SynapseV0ForkedTest and SynapseV1ForkedTest and removes all @Flaky annotations.

Motivation

Two distinct flake patterns:

Flake 1: URL Tag Mismatch

The http.url tag sometimes includes the query string (/services/SimpleStockQuoteService?wsdl) but the assertion expected only the path. This is non-deterministic Synapse internal behavior — the query is already captured separately in DDTags.HTTP_QUERY.

Fix: Changed the serverSpan helper's HTTP_URL assertion from exact string match to a closure that accepts either form: path-only or path+query when a query is present.

Flake 2: Extra Trace Count in Proxy Test

assertTraces(2, SORT_TRACES_BY_NAMES) sometimes finds 3 traces because Synapse's proxy request handling can produce an additional trace from internal activity.

Fix: Replaced the strict assertTraces(2) with a flexible approach that:

  1. Waits for at least 2 traces via TEST_WRITER.waitForTraces(2)
  2. Finds the expected proxy trace and server trace by their root span resource names
  3. Uses TraceAssert.assertTrace() with the existing serverSpan(), proxySpan(), and clientSpan() helpers to verify all span attributes (service name, operation name, tags, parent-child relationships)
  4. Verifies distributed tracing: client span's traceId is propagated to the backend server span

Test intention preserved: All original tag, attribute, and relationship assertions are maintained through the existing helper methods — the only change is tolerating extra traces from Synapse internals.

Additional Notes

  • No changes to instrumentation code, only test assertions
  • @Flaky annotations removed from SynapseTest, SynapseV0ForkedTest, and SynapseV1ForkedTest

Jira ticket: N/A

🤖 Generated with Claude Code

Fix two intermittent test failures in SynapseTest:

1. URL tag assertion: The http.url tag sometimes includes the query
   string (?wsdl) even though the query is captured separately in
   DDTags.HTTP_QUERY. Updated the serverSpan assertion to accept
   the URL with or without the query string.

2. Extra trace in client test: The proxy request test sometimes
   produces 3 traces instead of the expected 2 due to internal
   Synapse activity. Replaced the strict assertTraces(2) with a
   manual assertion that waits for at least 2 traces and validates
   the expected traces by their content rather than count.

The existing @flaky annotations are preserved for the timeout issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@bm1549 bm1549 added type: bug Bug report and fix tag: no release notes Changes to exclude from release notes tag: ai generated Largely based on code generated by an AI or LLM inst: synapse Synapse Instrumentation tag: flaky test Flaky tests labels Mar 10, 2026
bm1549 and others added 4 commits March 10, 2026 15:53
The actual assertion failures are fixed in this PR. The timeout
issue these annotations referenced appears to be resolved.
Reformat single-line closure to multi-line as required by spotless CI check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The proxy trace and server trace can contain extra internal Synapse spans,
making size() == 2 and size() == 1 assertions flaky. Replace with flexible
assertions that find specific spans by resource name and verify distributed
tracing correctness regardless of total span count.

Also tighten serverTrace matching to use any() instead of every() so extra
internal spans in a trace don't prevent the trace from being selected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…traces

The proxy and client spans can be distributed across traces differently in
different JVM/CI environments. Search all traces for spans by type (HTTP_CLIENT
vs HTTP_SERVER) and resource name, rather than assuming they appear in a specific
trace. This eliminates the fragile per-trace size assertions and trace-membership
assumptions while still validating the key behavioral invariants:
- Proxy server span is created
- HTTP client span for the forwarded call is created
- Distributed tracing works (client and server spans share traceId)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 10, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master brian.marks/fix-synapse-flaky-tests
git_commit_date 1773169596 1773715378
git_commit_sha cc12228 4db94c9
release_version 1.61.0-SNAPSHOT~cc122288e5 1.61.0-SNAPSHOT~4db94c993a
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1773747130 1773747130
ci_job_id 1512365815 1512365815
ci_pipeline_id 102918002 102918002
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-8da55sgl 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-8da55sgl 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

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

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.054 s) : 0, 1054494
Total [baseline] (8.81 s) : 0, 8810329
Agent [candidate] (1.053 s) : 0, 1052630
Total [candidate] (8.798 s) : 0, 8798220
section iast
Agent [baseline] (1.243 s) : 0, 1242613
Total [baseline] (9.566 s) : 0, 9565583
Agent [candidate] (1.225 s) : 0, 1224999
Total [candidate] (9.542 s) : 0, 9542257
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent iast 1.243 s 188.119 ms (17.8%)
Total tracing 8.81 s -
Total iast 9.566 s 755.254 ms (8.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.053 s -
Agent iast 1.225 s 172.369 ms (16.4%)
Total tracing 8.798 s -
Total iast 9.542 s 744.037 ms (8.5%)
gantt
    title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.219 ms) : 0, 1219
crashtracking [candidate] (1.18 ms) : 0, 1180
BytebuddyAgent [baseline] (626.575 ms) : 0, 626575
BytebuddyAgent [candidate] (625.105 ms) : 0, 625105
AgentMeter [baseline] (28.975 ms) : 0, 28975
AgentMeter [candidate] (29.019 ms) : 0, 29019
GlobalTracer [baseline] (256.452 ms) : 0, 256452
GlobalTracer [candidate] (255.831 ms) : 0, 255831
AppSec [baseline] (31.622 ms) : 0, 31622
AppSec [candidate] (31.461 ms) : 0, 31461
Debugger [baseline] (58.718 ms) : 0, 58718
Debugger [candidate] (58.567 ms) : 0, 58567
Remote Config [baseline] (603.263 µs) : 0, 603
Remote Config [candidate] (583.069 µs) : 0, 583
Telemetry [baseline] (8.618 ms) : 0, 8618
Telemetry [candidate] (8.64 ms) : 0, 8640
Flare Poller [baseline] (5.724 ms) : 0, 5724
Flare Poller [candidate] (6.436 ms) : 0, 6436
section iast
crashtracking [baseline] (1.209 ms) : 0, 1209
crashtracking [candidate] (1.202 ms) : 0, 1202
BytebuddyAgent [baseline] (809.342 ms) : 0, 809342
BytebuddyAgent [candidate] (795.332 ms) : 0, 795332
AgentMeter [baseline] (11.745 ms) : 0, 11745
AgentMeter [candidate] (11.307 ms) : 0, 11307
GlobalTracer [baseline] (248.996 ms) : 0, 248996
GlobalTracer [candidate] (246.863 ms) : 0, 246863
AppSec [baseline] (26.722 ms) : 0, 26722
AppSec [candidate] (26.314 ms) : 0, 26314
Debugger [baseline] (62.755 ms) : 0, 62755
Debugger [candidate] (62.54 ms) : 0, 62540
Remote Config [baseline] (519.107 µs) : 0, 519
Remote Config [candidate] (521.955 µs) : 0, 522
Telemetry [baseline] (14.743 ms) : 0, 14743
Telemetry [candidate] (14.862 ms) : 0, 14862
Flare Poller [baseline] (4.824 ms) : 0, 4824
Flare Poller [candidate] (4.861 ms) : 0, 4861
IAST [baseline] (25.492 ms) : 0, 25492
IAST [candidate] (25.176 ms) : 0, 25176
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.06 s) : 0, 1060117
Total [baseline] (10.993 s) : 0, 10992877
Agent [candidate] (1.06 s) : 0, 1060463
Total [candidate] (10.982 s) : 0, 10981571
section appsec
Agent [baseline] (1.254 s) : 0, 1253554
Total [baseline] (11.164 s) : 0, 11163872
Agent [candidate] (1.252 s) : 0, 1251862
Total [candidate] (11.19 s) : 0, 11190464
section iast
Agent [baseline] (1.233 s) : 0, 1232692
Total [baseline] (11.385 s) : 0, 11385074
Agent [candidate] (1.226 s) : 0, 1225957
Total [candidate] (10.604 s) : 0, 10603805
section profiling
Agent [baseline] (1.18 s) : 0, 1179733
Total [baseline] (10.967 s) : 0, 10967278
Agent [candidate] (1.181 s) : 0, 1180736
Total [candidate] (11.057 s) : 0, 11056814
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent appsec 1.254 s 193.437 ms (18.2%)
Agent iast 1.233 s 172.575 ms (16.3%)
Agent profiling 1.18 s 119.616 ms (11.3%)
Total tracing 10.993 s -
Total appsec 11.164 s 170.996 ms (1.6%)
Total iast 11.385 s 392.197 ms (3.6%)
Total profiling 10.967 s -25.599 ms (-0.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent appsec 1.252 s 191.399 ms (18.0%)
Agent iast 1.226 s 165.494 ms (15.6%)
Agent profiling 1.181 s 120.273 ms (11.3%)
Total tracing 10.982 s -
Total appsec 11.19 s 208.893 ms (1.9%)
Total iast 10.604 s -377.766 ms (-3.4%)
Total profiling 11.057 s 75.243 ms (0.7%)
gantt
    title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.189 ms) : 0, 1189
crashtracking [candidate] (1.2 ms) : 0, 1200
BytebuddyAgent [baseline] (628.259 ms) : 0, 628259
BytebuddyAgent [candidate] (629.753 ms) : 0, 629753
AgentMeter [baseline] (29.106 ms) : 0, 29106
AgentMeter [candidate] (29.212 ms) : 0, 29212
GlobalTracer [baseline] (256.917 ms) : 0, 256917
GlobalTracer [candidate] (256.855 ms) : 0, 256855
AppSec [baseline] (31.594 ms) : 0, 31594
AppSec [candidate] (31.672 ms) : 0, 31672
Debugger [baseline] (59.343 ms) : 0, 59343
Debugger [candidate] (59.353 ms) : 0, 59353
Remote Config [baseline] (580.289 µs) : 0, 580
Remote Config [candidate] (582.502 µs) : 0, 583
Telemetry [baseline] (8.582 ms) : 0, 8582
Telemetry [candidate] (8.529 ms) : 0, 8529
Flare Poller [baseline] (8.561 ms) : 0, 8561
Flare Poller [candidate] (7.224 ms) : 0, 7224
section appsec
crashtracking [baseline] (1.182 ms) : 0, 1182
crashtracking [candidate] (1.19 ms) : 0, 1190
BytebuddyAgent [baseline] (663.117 ms) : 0, 663117
BytebuddyAgent [candidate] (662.443 ms) : 0, 662443
AgentMeter [baseline] (12.127 ms) : 0, 12127
AgentMeter [candidate] (12.086 ms) : 0, 12086
GlobalTracer [baseline] (259.821 ms) : 0, 259821
GlobalTracer [candidate] (259.229 ms) : 0, 259229
AppSec [baseline] (177.951 ms) : 0, 177951
AppSec [candidate] (177.258 ms) : 0, 177258
Debugger [baseline] (65.832 ms) : 0, 65832
Debugger [candidate] (65.205 ms) : 0, 65205
Remote Config [baseline] (576.349 µs) : 0, 576
Remote Config [candidate] (581.633 µs) : 0, 582
Telemetry [baseline] (8.971 ms) : 0, 8971
Telemetry [candidate] (9.839 ms) : 0, 9839
Flare Poller [baseline] (3.655 ms) : 0, 3655
Flare Poller [candidate] (3.678 ms) : 0, 3678
IAST [baseline] (24.09 ms) : 0, 24090
IAST [candidate] (24.057 ms) : 0, 24057
section iast
crashtracking [baseline] (1.19 ms) : 0, 1190
crashtracking [candidate] (1.19 ms) : 0, 1190
BytebuddyAgent [baseline] (800.262 ms) : 0, 800262
BytebuddyAgent [candidate] (795.688 ms) : 0, 795688
AgentMeter [baseline] (11.375 ms) : 0, 11375
AgentMeter [candidate] (11.326 ms) : 0, 11326
GlobalTracer [baseline] (248.448 ms) : 0, 248448
GlobalTracer [candidate] (247.012 ms) : 0, 247012
AppSec [baseline] (26.515 ms) : 0, 26515
AppSec [candidate] (27.116 ms) : 0, 27116
Debugger [baseline] (68.06 ms) : 0, 68060
Debugger [candidate] (65.778 ms) : 0, 65778
Remote Config [baseline] (544.194 µs) : 0, 544
Remote Config [candidate] (532.435 µs) : 0, 532
Telemetry [baseline] (11.231 ms) : 0, 11231
Telemetry [candidate] (12.324 ms) : 0, 12324
Flare Poller [baseline] (3.815 ms) : 0, 3815
Flare Poller [candidate] (3.972 ms) : 0, 3972
IAST [baseline] (25.239 ms) : 0, 25239
IAST [candidate] (25.074 ms) : 0, 25074
section profiling
crashtracking [baseline] (1.164 ms) : 0, 1164
crashtracking [candidate] (1.166 ms) : 0, 1166
BytebuddyAgent [baseline] (681.677 ms) : 0, 681677
BytebuddyAgent [candidate] (682.056 ms) : 0, 682056
AgentMeter [baseline] (8.59 ms) : 0, 8590
AgentMeter [candidate] (8.622 ms) : 0, 8622
GlobalTracer [baseline] (214.965 ms) : 0, 214965
GlobalTracer [candidate] (215.076 ms) : 0, 215076
AppSec [baseline] (31.802 ms) : 0, 31802
AppSec [candidate] (31.95 ms) : 0, 31950
Debugger [baseline] (64.382 ms) : 0, 64382
Debugger [candidate] (65.314 ms) : 0, 65314
Remote Config [baseline] (598.981 µs) : 0, 599
Remote Config [candidate] (584.226 µs) : 0, 584
Telemetry [baseline] (8.907 ms) : 0, 8907
Telemetry [candidate] (8.163 ms) : 0, 8163
Flare Poller [baseline] (3.447 ms) : 0, 3447
Flare Poller [candidate] (3.441 ms) : 0, 3441
ProfilingAgent [baseline] (93.514 ms) : 0, 93514
ProfilingAgent [candidate] (93.835 ms) : 0, 93835
Profiling [baseline] (94.077 ms) : 0, 94077
Profiling [candidate] (94.404 ms) : 0, 94404
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master brian.marks/fix-synapse-flaky-tests
git_commit_date 1773169596 1773715378
git_commit_sha cc12228 4db94c9
release_version 1.61.0-SNAPSHOT~cc122288e5 1.61.0-SNAPSHOT~4db94c993a
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1773747619 1773747619
ci_job_id 1512365816 1512365816
ci_pipeline_id 102918002 102918002
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-9jimppjv 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-9jimppjv 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 4 performance improvements and 3 performance regressions! Performance is the same for 14 metrics, 15 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:profiling:high_load better
[-198.884µs; -70.263µs] or [-11.090%; -3.918%]
unstable
[-1311.607µs; -399.292µs] or [-23.686%; -7.211%]
unstable
[+4.958op/s; +501.479op/s] or [+0.252%; +25.480%]
1.659ms 4.682ms 2221.312op/s 1.793ms 5.538ms 1968.094op/s
scenario:load:insecure-bank:iast_GLOBAL:high_load better
[-176.863µs; -70.139µs] or [-6.273%; -2.488%]
same
[-299.045µs; +167.604µs] or [-3.778%; +2.117%]
unstable
[-104.934op/s; +183.309op/s] or [-8.143%; +14.226%]
2.696ms 7.851ms 1327.781op/s 2.819ms 7.916ms 1288.594op/s
scenario:load:insecure-bank:iast:high_load worse
[+60.548µs; +147.945µs] or [+2.526%; +6.172%]
unsure
[+66.705µs; +374.031µs] or [+0.936%; +5.249%]
unstable
[-210.871op/s; +99.683op/s] or [-14.287%; +6.754%]
2.501ms 7.346ms 1420.406op/s 2.397ms 7.126ms 1476.000op/s
scenario:load:petclinic:no_agent:high_load better
[-2.552ms; -1.125ms] or [-13.695%; -6.036%]
better
[-4.133ms; -1.499ms] or [-13.355%; -4.843%]
unstable
[-0.434op/s; +54.059op/s] or [-0.177%; +22.110%]
16.797ms 28.131ms 271.312op/s 18.636ms 30.947ms 244.500op/s
scenario:load:petclinic:profiling:high_load worse
[+0.636ms; +1.590ms] or [+3.464%; +8.659%]
worse
[+0.979ms; +2.298ms] or [+3.291%; +7.722%]
unstable
[-36.996op/s; +11.871op/s] or [-14.852%; +4.766%]
19.481ms 31.400ms 236.531op/s 18.367ms 29.761ms 249.094op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.088 ms) : 18893, 19283
.   : milestone, 19088,
appsec (18.618 ms) : 18429, 18808
.   : milestone, 18618,
code_origins (17.793 ms) : 17615, 17970
.   : milestone, 17793,
iast (17.669 ms) : 17495, 17844
.   : milestone, 17669,
profiling (18.734 ms) : 18549, 18919
.   : milestone, 18734,
tracing (17.669 ms) : 17493, 17846
.   : milestone, 17669,
section candidate
no_agent (17.197 ms) : 17025, 17368
.   : milestone, 17197,
appsec (18.719 ms) : 18531, 18907
.   : milestone, 18719,
code_origins (17.915 ms) : 17736, 18093
.   : milestone, 17915,
iast (17.849 ms) : 17673, 18025
.   : milestone, 17849,
profiling (19.735 ms) : 19534, 19936
.   : milestone, 19735,
tracing (17.756 ms) : 17579, 17934
.   : milestone, 17756,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.088 ms [18.893 ms, 19.283 ms] -
appsec 18.618 ms [18.429 ms, 18.808 ms] -469.698 µs (-2.5%)
code_origins 17.793 ms [17.615 ms, 17.97 ms] -1.295 ms (-6.8%)
iast 17.669 ms [17.495 ms, 17.844 ms] -1.419 ms (-7.4%)
profiling 18.734 ms [18.549 ms, 18.919 ms] -353.95 µs (-1.9%)
tracing 17.669 ms [17.493 ms, 17.846 ms] -1.419 ms (-7.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.197 ms [17.025 ms, 17.368 ms] -
appsec 18.719 ms [18.531 ms, 18.907 ms] 1.522 ms (8.8%)
code_origins 17.915 ms [17.736 ms, 18.093 ms] 717.592 µs (4.2%)
iast 17.849 ms [17.673 ms, 18.025 ms] 652.199 µs (3.8%)
profiling 19.735 ms [19.534 ms, 19.936 ms] 2.538 ms (14.8%)
tracing 17.756 ms [17.579 ms, 17.934 ms] 559.433 µs (3.3%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.189 ms) : 1177, 1201
.   : milestone, 1189,
iast (3.097 ms) : 3057, 3137
.   : milestone, 3097,
iast_FULL (6.003 ms) : 5942, 6065
.   : milestone, 6003,
iast_GLOBAL (3.558 ms) : 3505, 3612
.   : milestone, 3558,
profiling (2.304 ms) : 2283, 2326
.   : milestone, 2304,
tracing (1.87 ms) : 1853, 1887
.   : milestone, 1870,
section candidate
no_agent (1.171 ms) : 1160, 1182
.   : milestone, 1171,
iast (3.22 ms) : 3176, 3264
.   : milestone, 3220,
iast_FULL (5.87 ms) : 5811, 5930
.   : milestone, 5870,
iast_GLOBAL (3.452 ms) : 3406, 3498
.   : milestone, 3452,
profiling (2.034 ms) : 2016, 2052
.   : milestone, 2034,
tracing (1.815 ms) : 1799, 1831
.   : milestone, 1815,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.189 ms [1.177 ms, 1.201 ms] -
iast 3.097 ms [3.057 ms, 3.137 ms] 1.908 ms (160.5%)
iast_FULL 6.003 ms [5.942 ms, 6.065 ms] 4.815 ms (404.9%)
iast_GLOBAL 3.558 ms [3.505 ms, 3.612 ms] 2.37 ms (199.3%)
profiling 2.304 ms [2.283 ms, 2.326 ms] 1.116 ms (93.8%)
tracing 1.87 ms [1.853 ms, 1.887 ms] 680.811 µs (57.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.171 ms [1.16 ms, 1.182 ms] -
iast 3.22 ms [3.176 ms, 3.264 ms] 2.049 ms (175.0%)
iast_FULL 5.87 ms [5.811 ms, 5.93 ms] 4.699 ms (401.3%)
iast_GLOBAL 3.452 ms [3.406 ms, 3.498 ms] 2.281 ms (194.8%)
profiling 2.034 ms [2.016 ms, 2.052 ms] 862.922 µs (73.7%)
tracing 1.815 ms [1.799 ms, 1.831 ms] 644.357 µs (55.0%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master brian.marks/fix-synapse-flaky-tests
git_commit_date 1773169596 1773715378
git_commit_sha cc12228 4db94c9
release_version 1.61.0-SNAPSHOT~cc122288e5 1.61.0-SNAPSHOT~4db94c993a
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1773747327 1773747327
ci_job_id 1512365817 1512365817
ci_pipeline_id 102918002 102918002
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-4p1mpdto 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-4p1mpdto 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.873 s) : 14873000, 14873000
.   : milestone, 14873000,
appsec (14.843 s) : 14843000, 14843000
.   : milestone, 14843000,
iast (18.203 s) : 18203000, 18203000
.   : milestone, 18203000,
iast_GLOBAL (17.752 s) : 17752000, 17752000
.   : milestone, 17752000,
profiling (14.811 s) : 14811000, 14811000
.   : milestone, 14811000,
tracing (15.11 s) : 15110000, 15110000
.   : milestone, 15110000,
section candidate
no_agent (14.8 s) : 14800000, 14800000
.   : milestone, 14800000,
appsec (14.806 s) : 14806000, 14806000
.   : milestone, 14806000,
iast (18.033 s) : 18033000, 18033000
.   : milestone, 18033000,
iast_GLOBAL (18.027 s) : 18027000, 18027000
.   : milestone, 18027000,
profiling (15.691 s) : 15691000, 15691000
.   : milestone, 15691000,
tracing (15.133 s) : 15133000, 15133000
.   : milestone, 15133000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.873 s [14.873 s, 14.873 s] -
appsec 14.843 s [14.843 s, 14.843 s] -30.0 ms (-0.2%)
iast 18.203 s [18.203 s, 18.203 s] 3.33 s (22.4%)
iast_GLOBAL 17.752 s [17.752 s, 17.752 s] 2.879 s (19.4%)
profiling 14.811 s [14.811 s, 14.811 s] -62.0 ms (-0.4%)
tracing 15.11 s [15.11 s, 15.11 s] 237.0 ms (1.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.8 s [14.8 s, 14.8 s] -
appsec 14.806 s [14.806 s, 14.806 s] 6.0 ms (0.0%)
iast 18.033 s [18.033 s, 18.033 s] 3.233 s (21.8%)
iast_GLOBAL 18.027 s [18.027 s, 18.027 s] 3.227 s (21.8%)
profiling 15.691 s [15.691 s, 15.691 s] 891.0 ms (6.0%)
tracing 15.133 s [15.133 s, 15.133 s] 333.0 ms (2.2%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~4db94c993a, baseline=1.61.0-SNAPSHOT~cc122288e5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.471 ms) : 1460, 1483
.   : milestone, 1471,
appsec (3.745 ms) : 3527, 3962
.   : milestone, 3745,
iast (2.25 ms) : 2180, 2319
.   : milestone, 2250,
iast_GLOBAL (2.3 ms) : 2230, 2370
.   : milestone, 2300,
profiling (2.114 ms) : 2057, 2171
.   : milestone, 2114,
tracing (2.084 ms) : 2030, 2138
.   : milestone, 2084,
section candidate
no_agent (1.469 ms) : 1458, 1481
.   : milestone, 1469,
appsec (3.79 ms) : 3570, 4010
.   : milestone, 3790,
iast (2.255 ms) : 2185, 2324
.   : milestone, 2255,
iast_GLOBAL (2.295 ms) : 2225, 2365
.   : milestone, 2295,
profiling (2.114 ms) : 2057, 2172
.   : milestone, 2114,
tracing (2.072 ms) : 2018, 2126
.   : milestone, 2072,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.46 ms, 1.483 ms] -
appsec 3.745 ms [3.527 ms, 3.962 ms] 2.273 ms (154.5%)
iast 2.25 ms [2.18 ms, 2.319 ms] 778.134 µs (52.9%)
iast_GLOBAL 2.3 ms [2.23 ms, 2.37 ms] 828.589 µs (56.3%)
profiling 2.114 ms [2.057 ms, 2.171 ms] 642.304 µs (43.7%)
tracing 2.084 ms [2.03 ms, 2.138 ms] 612.388 µs (41.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.469 ms [1.458 ms, 1.481 ms] -
appsec 3.79 ms [3.57 ms, 4.01 ms] 2.32 ms (157.9%)
iast 2.255 ms [2.185 ms, 2.324 ms] 785.223 µs (53.4%)
iast_GLOBAL 2.295 ms [2.225 ms, 2.365 ms] 825.469 µs (56.2%)
profiling 2.114 ms [2.057 ms, 2.172 ms] 645.084 µs (43.9%)
tracing 2.072 ms [2.018 ms, 2.126 ms] 602.888 µs (41.0%)

@bm1549 bm1549 marked this pull request as ready for review March 10, 2026 21:49
@bm1549 bm1549 requested a review from a team as a code owner March 10, 2026 21:49
Replace the minimal span-existence-only assertions added to tolerate
extra traces with full TraceAssert.assertTrace() calls using the
existing serverSpan/proxySpan/clientSpan helpers.  The test now
validates service name, operation name, resource name, span type,
error flag, parent–child relationships, tags (component, span kind,
HTTP method/status/URL, peer IP/port), and distributed tracing — while
still tolerating the variable number of internal Synapse traces by
locating each expected trace by its root span resource name before
asserting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bm1549 bm1549 marked this pull request as draft March 17, 2026 19:03
@bm1549 bm1549 closed this Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: synapse Synapse Instrumentation tag: ai generated Largely based on code generated by an AI or LLM tag: flaky test Flaky tests tag: no release notes Changes to exclude from release notes type: bug Bug report and fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant