Skip to content

Add PROVIDER_FATAL state propagation for non-retryable RC errors#11195

Draft
typotter wants to merge 3 commits intomasterfrom
typo/ffe-reason-2-provider-fatal
Draft

Add PROVIDER_FATAL state propagation for non-retryable RC errors#11195
typotter wants to merge 3 commits intomasterfrom
typo/ffe-reason-2-provider-fatal

Conversation

@typotter
Copy link
Copy Markdown
Contributor

Investigation findings

When the RC /v0.7/config endpoint returns HTTP 401, the call path terminates silently:

  1. DefaultConfigurationPoller.sendRequest() receives the 401
  2. response.isSuccessful() is false → the response body is logged via a rate-limited warning and the method returns
  3. handleAgentResponse() is never called
  4. RemoteConfigServiceImpl.accept() is never called
  5. FeatureFlaggingGateway.dispatch(ServerConfiguration) is never called
  6. DDEvaluator.accept() is never called
  7. initializationLatch never counts down
  8. DDEvaluator.initialize() times out and returns false
  9. Provider.initialize() throws ProviderNotReadyErrorwrong state: should be PROVIDER_FATAL

Fix

Added a NonRetryableErrorListener chain from the RC transport layer up to the OpenFeature provider:

  • ConfigurationPoller (interface): added addNonRetryableErrorListener / removeNonRetryableErrorListener default methods and the NonRetryableErrorListener functional interface
  • DefaultConfigurationPoller: implements the listener list; sendRequest() calls notifyNonRetryableErrorListeners() when response.code() is 401 or 403
  • RemoteConfigServiceImpl: registers a NonRetryableErrorListener that forwards to FeatureFlaggingGateway.dispatchFatalError()
  • FeatureFlaggingGateway: added FatalErrorListener interface plus addFatalErrorListener / removeFatalErrorListener / dispatchFatalError() — no OpenFeature SDK dependency (uses plain int for status code)
  • DDEvaluator: implements FatalErrorListener; on receipt stores the error message and releases initializationLatch; initialize() checks for the fatal message after the latch releases and throws FatalError, causing the OpenFeature SDK to set PROVIDER_FATAL

Test plan

  • Verify unit tests in feature-flagging-api and remote-config-core still pass
  • Confirm that a 401 response to /v0.7/config in the system test causes the provider to enter PROVIDER_FATAL
  • Confirm that a 200 response still causes the provider to enter PROVIDER_READY
  • Confirm that a timeout still causes PROVIDER_NOT_READY (latch not released, configuration.get() is null)

Labels

tag: ai generated tag: no release note

When the RC endpoint returns a non-retryable 4xx (401, 403), the
OpenFeature provider now transitions to PROVIDER_FATAL instead of
blocking indefinitely or timing out with PROVIDER_NOT_READY.

Code path:
- DefaultConfigurationPoller.sendRequest() detects 401/403 and notifies
  registered NonRetryableErrorListeners
- RemoteConfigServiceImpl registers such a listener and forwards to
  FeatureFlaggingGateway.dispatchFatalError()
- DDEvaluator implements FeatureFlaggingGateway.FatalErrorListener;
  on receipt it stores the error message and releases the initialization
  latch
- DDEvaluator.initialize() throws FatalError after the latch is
  released with a fatal error present
- Provider.initialize() re-throws FatalError (it extends OpenFeatureError)
  causing the OpenFeature SDK to set state to PROVIDER_FATAL
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Apr 23, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master typo/ffe-reason-2-provider-fatal
git_commit_date 1776961796 1777404427
git_commit_sha 9aedff2 e485c13
release_version 1.62.0-SNAPSHOT~9aedff24d2 1.62.0-SNAPSHOT~e485c134df
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1777406242 1777406242
ci_job_id 1639595787 1639595787
ci_pipeline_id 110258162 110258162
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-9kaivdb9 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-9kaivdb9 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 5 performance regressions! Performance is the same for 56 metrics, 10 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:insecure-bank:iast:Remote Config worse
[+103.136µs; +128.452µs] or [+19.063%; +23.742%]
656.826µs 541.032µs
scenario:startup:insecure-bank:tracing:Remote Config worse
[+128.075µs; +167.068µs] or [+21.349%; +27.849%]
747.486µs 599.915µs
scenario:startup:petclinic:iast:Remote Config worse
[+115.518µs; +162.762µs] or [+21.730%; +30.617%]
670.753µs 531.612µs
scenario:startup:petclinic:profiling:Remote Config worse
[+104.690µs; +135.968µs] or [+18.123%; +23.538%]
697.992µs 577.663µs
scenario:startup:petclinic:tracing:Remote Config worse
[+106.003µs; +145.022µs] or [+17.448%; +23.871%]
733.035µs 607.522µs
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.058 s) : 0, 1057983
Total [baseline] (8.879 s) : 0, 8878638
Agent [candidate] (1.063 s) : 0, 1062843
Total [candidate] (8.863 s) : 0, 8862663
section iast
Agent [baseline] (1.23 s) : 0, 1230407
Total [baseline] (9.539 s) : 0, 9538995
Agent [candidate] (1.25 s) : 0, 1250108
Total [candidate] (9.592 s) : 0, 9592207
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.058 s -
Agent iast 1.23 s 172.425 ms (16.3%)
Total tracing 8.879 s -
Total iast 9.539 s 660.358 ms (7.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.063 s -
Agent iast 1.25 s 187.264 ms (17.6%)
Total tracing 8.863 s -
Total iast 9.592 s 729.544 ms (8.2%)
gantt
    title insecure-bank - break down per module: candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.244 ms) : 0, 1244
crashtracking [candidate] (1.239 ms) : 0, 1239
BytebuddyAgent [baseline] (637.04 ms) : 0, 637040
BytebuddyAgent [candidate] (639.346 ms) : 0, 639346
AgentMeter [baseline] (29.585 ms) : 0, 29585
AgentMeter [candidate] (29.703 ms) : 0, 29703
GlobalTracer [baseline] (249.447 ms) : 0, 249447
GlobalTracer [candidate] (250.4 ms) : 0, 250400
AppSec [baseline] (32.316 ms) : 0, 32316
AppSec [candidate] (32.268 ms) : 0, 32268
Debugger [baseline] (59.729 ms) : 0, 59729
Debugger [candidate] (59.789 ms) : 0, 59789
Remote Config [baseline] (599.915 µs) : 0, 600
Remote Config [candidate] (747.486 µs) : 0, 747
Telemetry [baseline] (8.035 ms) : 0, 8035
Telemetry [candidate] (8.068 ms) : 0, 8068
Flare Poller [baseline] (3.593 ms) : 0, 3593
Flare Poller [candidate] (5.004 ms) : 0, 5004
section iast
crashtracking [baseline] (1.234 ms) : 0, 1234
crashtracking [candidate] (1.248 ms) : 0, 1248
BytebuddyAgent [baseline] (808.353 ms) : 0, 808353
BytebuddyAgent [candidate] (825.666 ms) : 0, 825666
AgentMeter [baseline] (11.337 ms) : 0, 11337
AgentMeter [candidate] (11.56 ms) : 0, 11560
GlobalTracer [baseline] (238.811 ms) : 0, 238811
GlobalTracer [candidate] (240.954 ms) : 0, 240954
IAST [baseline] (27.536 ms) : 0, 27536
IAST [candidate] (31.807 ms) : 0, 31807
AppSec [baseline] (29.657 ms) : 0, 29657
AppSec [candidate] (27.462 ms) : 0, 27462
Debugger [baseline] (65.571 ms) : 0, 65571
Debugger [candidate] (63.187 ms) : 0, 63187
Remote Config [baseline] (541.032 µs) : 0, 541
Remote Config [candidate] (656.826 µs) : 0, 657
Telemetry [baseline] (7.768 ms) : 0, 7768
Telemetry [candidate] (7.75 ms) : 0, 7750
Flare Poller [baseline] (3.437 ms) : 0, 3437
Flare Poller [candidate] (3.477 ms) : 0, 3477
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.065 s) : 0, 1065035
Total [baseline] (11.158 s) : 0, 11157534
Agent [candidate] (1.059 s) : 0, 1059113
Total [candidate] (11.265 s) : 0, 11264633
section appsec
Agent [baseline] (1.269 s) : 0, 1269338
Total [baseline] (11.063 s) : 0, 11063015
Agent [candidate] (1.264 s) : 0, 1263893
Total [candidate] (11.045 s) : 0, 11045101
section iast
Agent [baseline] (1.252 s) : 0, 1252218
Total [baseline] (11.328 s) : 0, 11328406
Agent [candidate] (1.237 s) : 0, 1237338
Total [candidate] (11.321 s) : 0, 11320558
section profiling
Agent [baseline] (1.189 s) : 0, 1189129
Total [baseline] (11.124 s) : 0, 11124469
Agent [candidate] (1.186 s) : 0, 1186294
Total [candidate] (11.061 s) : 0, 11061436
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.065 s -
Agent appsec 1.269 s 204.303 ms (19.2%)
Agent iast 1.252 s 187.184 ms (17.6%)
Agent profiling 1.189 s 124.094 ms (11.7%)
Total tracing 11.158 s -
Total appsec 11.063 s -94.519 ms (-0.8%)
Total iast 11.328 s 170.872 ms (1.5%)
Total profiling 11.124 s -33.065 ms (-0.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.059 s -
Agent appsec 1.264 s 204.781 ms (19.3%)
Agent iast 1.237 s 178.226 ms (16.8%)
Agent profiling 1.186 s 127.181 ms (12.0%)
Total tracing 11.265 s -
Total appsec 11.045 s -219.532 ms (-1.9%)
Total iast 11.321 s 55.925 ms (0.5%)
Total profiling 11.061 s -203.197 ms (-1.8%)
gantt
    title petclinic - break down per module: candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.239 ms) : 0, 1239
crashtracking [candidate] (1.225 ms) : 0, 1225
BytebuddyAgent [baseline] (639.863 ms) : 0, 639863
BytebuddyAgent [candidate] (636.268 ms) : 0, 636268
AgentMeter [baseline] (29.637 ms) : 0, 29637
AgentMeter [candidate] (29.35 ms) : 0, 29350
GlobalTracer [baseline] (250.948 ms) : 0, 250948
GlobalTracer [candidate] (249.574 ms) : 0, 249574
AppSec [baseline] (32.782 ms) : 0, 32782
AppSec [candidate] (32.258 ms) : 0, 32258
Debugger [baseline] (61.151 ms) : 0, 61151
Debugger [candidate] (60.473 ms) : 0, 60473
Remote Config [baseline] (607.522 µs) : 0, 608
Remote Config [candidate] (733.035 µs) : 0, 733
Telemetry [baseline] (8.122 ms) : 0, 8122
Telemetry [candidate] (8.807 ms) : 0, 8807
Flare Poller [baseline] (4.327 ms) : 0, 4327
Flare Poller [candidate] (4.242 ms) : 0, 4242
section appsec
crashtracking [baseline] (1.249 ms) : 0, 1249
crashtracking [candidate] (1.224 ms) : 0, 1224
BytebuddyAgent [baseline] (680.492 ms) : 0, 680492
BytebuddyAgent [candidate] (675.988 ms) : 0, 675988
AgentMeter [baseline] (12.252 ms) : 0, 12252
AgentMeter [candidate] (12.182 ms) : 0, 12182
GlobalTracer [baseline] (249.692 ms) : 0, 249692
GlobalTracer [candidate] (249.4 ms) : 0, 249400
AppSec [baseline] (186.587 ms) : 0, 186587
AppSec [candidate] (187.599 ms) : 0, 187599
Debugger [baseline] (66.246 ms) : 0, 66246
Debugger [candidate] (64.978 ms) : 0, 64978
Remote Config [baseline] (575.109 µs) : 0, 575
Remote Config [candidate] (721.167 µs) : 0, 721
Telemetry [baseline] (7.884 ms) : 0, 7884
Telemetry [candidate] (7.741 ms) : 0, 7741
Flare Poller [baseline] (3.518 ms) : 0, 3518
Flare Poller [candidate] (3.386 ms) : 0, 3386
IAST [baseline] (24.372 ms) : 0, 24372
IAST [candidate] (24.301 ms) : 0, 24301
section iast
crashtracking [baseline] (1.241 ms) : 0, 1241
crashtracking [candidate] (1.236 ms) : 0, 1236
BytebuddyAgent [baseline] (824.297 ms) : 0, 824297
BytebuddyAgent [candidate] (812.435 ms) : 0, 812435
AgentMeter [baseline] (11.645 ms) : 0, 11645
AgentMeter [candidate] (11.453 ms) : 0, 11453
GlobalTracer [baseline] (242.169 ms) : 0, 242169
GlobalTracer [candidate] (240.66 ms) : 0, 240660
AppSec [baseline] (28.947 ms) : 0, 28947
AppSec [candidate] (27.744 ms) : 0, 27744
Debugger [baseline] (66.155 ms) : 0, 66155
Debugger [candidate] (65.691 ms) : 0, 65691
Remote Config [baseline] (531.612 µs) : 0, 532
Remote Config [candidate] (670.753 µs) : 0, 671
Telemetry [baseline] (7.84 ms) : 0, 7840
Telemetry [candidate] (7.813 ms) : 0, 7813
Flare Poller [baseline] (3.485 ms) : 0, 3485
Flare Poller [candidate] (3.463 ms) : 0, 3463
IAST [baseline] (29.428 ms) : 0, 29428
IAST [candidate] (30.065 ms) : 0, 30065
section profiling
ProfilingAgent [baseline] (94.642 ms) : 0, 94642
ProfilingAgent [candidate] (93.34 ms) : 0, 93340
crashtracking [baseline] (1.192 ms) : 0, 1192
crashtracking [candidate] (1.204 ms) : 0, 1204
BytebuddyAgent [baseline] (694.02 ms) : 0, 694020
BytebuddyAgent [candidate] (693.716 ms) : 0, 693716
AgentMeter [baseline] (8.901 ms) : 0, 8901
AgentMeter [candidate] (8.976 ms) : 0, 8976
GlobalTracer [baseline] (207.905 ms) : 0, 207905
GlobalTracer [candidate] (207.269 ms) : 0, 207269
AppSec [baseline] (32.558 ms) : 0, 32558
AppSec [candidate] (32.59 ms) : 0, 32590
Debugger [baseline] (65.913 ms) : 0, 65913
Debugger [candidate] (65.587 ms) : 0, 65587
Remote Config [baseline] (577.663 µs) : 0, 578
Remote Config [candidate] (697.992 µs) : 0, 698
Telemetry [baseline] (7.89 ms) : 0, 7890
Telemetry [candidate] (7.717 ms) : 0, 7717
Flare Poller [baseline] (3.514 ms) : 0, 3514
Flare Poller [candidate] (3.443 ms) : 0, 3443
Profiling [baseline] (95.205 ms) : 0, 95205
Profiling [candidate] (93.896 ms) : 0, 93896
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master typo/ffe-reason-2-provider-fatal
git_commit_date 1776961796 1777404427
git_commit_sha 9aedff2 e485c13
release_version 1.62.0-SNAPSHOT~9aedff24d2 1.62.0-SNAPSHOT~e485c134df
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1777406722 1777406722
ci_job_id 1639595788 1639595788
ci_pipeline_id 110258162 110258162
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-jih9k9jr 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-jih9k9jr 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 2 performance improvements and 1 performance regressions! Performance is the same for 17 metrics, 16 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
[-165.074µs; -50.792µs] or [-9.367%; -2.882%]
unstable
[-975.866µs; +84.471µs] or [-19.003%; +1.645%]
unstable
[-88.767op/s; +464.892op/s] or [-4.311%; +22.575%]
1.654ms 4.690ms 2247.375op/s 1.762ms 5.135ms 2059.312op/s
scenario:load:insecure-bank:iast_GLOBAL:high_load worse
[+74.038µs; +171.893µs] or [+2.590%; +6.014%]
same
[-205.502µs; +223.148µs] or [-2.504%; +2.719%]
unstable
[-185.214op/s; +115.652op/s] or [-14.603%; +9.118%]
2.981ms 8.215ms 1233.562op/s 2.858ms 8.206ms 1268.344op/s
scenario:load:petclinic:profiling:high_load better
[-1.608ms; -0.680ms] or [-8.290%; -3.504%]
unsure
[-2.023ms; -0.315ms] or [-6.507%; -1.014%]
unstable
[-9.534op/s; +37.472op/s] or [-4.016%; +15.786%]
18.256ms 29.917ms 251.344op/s 19.400ms 31.086ms 237.375op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.242 ms) : 1229, 1254
.   : milestone, 1242,
iast (3.383 ms) : 3332, 3433
.   : milestone, 3383,
iast_FULL (6.191 ms) : 6127, 6256
.   : milestone, 6191,
iast_GLOBAL (3.631 ms) : 3580, 3683
.   : milestone, 3631,
profiling (2.2 ms) : 2180, 2220
.   : milestone, 2200,
tracing (1.896 ms) : 1879, 1912
.   : milestone, 1896,
section candidate
no_agent (1.237 ms) : 1226, 1249
.   : milestone, 1237,
iast (3.417 ms) : 3364, 3469
.   : milestone, 3417,
iast_FULL (6.154 ms) : 6091, 6218
.   : milestone, 6154,
iast_GLOBAL (3.722 ms) : 3667, 3778
.   : milestone, 3722,
profiling (2.01 ms) : 1992, 2028
.   : milestone, 2010,
tracing (1.882 ms) : 1866, 1898
.   : milestone, 1882,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.242 ms [1.229 ms, 1.254 ms] -
iast 3.383 ms [3.332 ms, 3.433 ms] 2.141 ms (172.5%)
iast_FULL 6.191 ms [6.127 ms, 6.256 ms] 4.949 ms (398.6%)
iast_GLOBAL 3.631 ms [3.58 ms, 3.683 ms] 2.39 ms (192.5%)
profiling 2.2 ms [2.18 ms, 2.22 ms] 958.296 µs (77.2%)
tracing 1.896 ms [1.879 ms, 1.912 ms] 653.956 µs (52.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.237 ms [1.226 ms, 1.249 ms] -
iast 3.417 ms [3.364 ms, 3.469 ms] 2.179 ms (176.2%)
iast_FULL 6.154 ms [6.091 ms, 6.218 ms] 4.917 ms (397.5%)
iast_GLOBAL 3.722 ms [3.667 ms, 3.778 ms] 2.485 ms (200.9%)
profiling 2.01 ms [1.992 ms, 2.028 ms] 772.915 µs (62.5%)
tracing 1.882 ms [1.866 ms, 1.898 ms] 644.533 µs (52.1%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.093 ms) : 17912, 18275
.   : milestone, 18093,
appsec (18.912 ms) : 18722, 19103
.   : milestone, 18912,
code_origins (17.817 ms) : 17637, 17996
.   : milestone, 17817,
iast (17.686 ms) : 17511, 17860
.   : milestone, 17686,
profiling (19.667 ms) : 19469, 19865
.   : milestone, 19667,
tracing (17.783 ms) : 17610, 17956
.   : milestone, 17783,
section candidate
no_agent (17.973 ms) : 17792, 18155
.   : milestone, 17973,
appsec (18.46 ms) : 18273, 18646
.   : milestone, 18460,
code_origins (17.7 ms) : 17528, 17873
.   : milestone, 17700,
iast (17.789 ms) : 17613, 17965
.   : milestone, 17789,
profiling (18.572 ms) : 18383, 18761
.   : milestone, 18572,
tracing (17.709 ms) : 17535, 17883
.   : milestone, 17709,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.093 ms [17.912 ms, 18.275 ms] -
appsec 18.912 ms [18.722 ms, 19.103 ms] 819.395 µs (4.5%)
code_origins 17.817 ms [17.637 ms, 17.996 ms] -276.41 µs (-1.5%)
iast 17.686 ms [17.511 ms, 17.86 ms] -407.454 µs (-2.3%)
profiling 19.667 ms [19.469 ms, 19.865 ms] 1.574 ms (8.7%)
tracing 17.783 ms [17.61 ms, 17.956 ms] -310.276 µs (-1.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.973 ms [17.792 ms, 18.155 ms] -
appsec 18.46 ms [18.273 ms, 18.646 ms] 486.42 µs (2.7%)
code_origins 17.7 ms [17.528 ms, 17.873 ms] -272.812 µs (-1.5%)
iast 17.789 ms [17.613 ms, 17.965 ms] -184.015 µs (-1.0%)
profiling 18.572 ms [18.383 ms, 18.761 ms] 598.819 µs (3.3%)
tracing 17.709 ms [17.535 ms, 17.883 ms] -264.163 µs (-1.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master typo/ffe-reason-2-provider-fatal
git_commit_date 1776961796 1777404427
git_commit_sha 9aedff2 e485c13
release_version 1.62.0-SNAPSHOT~9aedff24d2 1.62.0-SNAPSHOT~e485c134df
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1777406489 1777406489
ci_job_id 1639595789 1639595789
ci_pipeline_id 110258162 110258162
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-staexttn 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-staexttn 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 10 metrics, 2 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.488 ms) : 1477, 1500
.   : milestone, 1488,
appsec (3.796 ms) : 3572, 4019
.   : milestone, 3796,
iast (2.266 ms) : 2197, 2336
.   : milestone, 2266,
iast_GLOBAL (2.312 ms) : 2242, 2382
.   : milestone, 2312,
profiling (2.521 ms) : 2355, 2687
.   : milestone, 2521,
tracing (2.088 ms) : 2035, 2142
.   : milestone, 2088,
section candidate
no_agent (1.491 ms) : 1479, 1503
.   : milestone, 1491,
appsec (3.828 ms) : 3607, 4049
.   : milestone, 3828,
iast (2.27 ms) : 2201, 2340
.   : milestone, 2270,
iast_GLOBAL (2.314 ms) : 2245, 2384
.   : milestone, 2314,
profiling (2.091 ms) : 2037, 2146
.   : milestone, 2091,
tracing (2.074 ms) : 2021, 2128
.   : milestone, 2074,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.488 ms [1.477 ms, 1.5 ms] -
appsec 3.796 ms [3.572 ms, 4.019 ms] 2.307 ms (155.0%)
iast 2.266 ms [2.197 ms, 2.336 ms] 777.915 µs (52.3%)
iast_GLOBAL 2.312 ms [2.242 ms, 2.382 ms] 823.917 µs (55.4%)
profiling 2.521 ms [2.355 ms, 2.687 ms] 1.033 ms (69.4%)
tracing 2.088 ms [2.035 ms, 2.142 ms] 599.846 µs (40.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.491 ms [1.479 ms, 1.503 ms] -
appsec 3.828 ms [3.607 ms, 4.049 ms] 2.337 ms (156.7%)
iast 2.27 ms [2.201 ms, 2.34 ms] 779.089 µs (52.3%)
iast_GLOBAL 2.314 ms [2.245 ms, 2.384 ms] 823.382 µs (55.2%)
profiling 2.091 ms [2.037 ms, 2.146 ms] 600.449 µs (40.3%)
tracing 2.074 ms [2.021 ms, 2.128 ms] 583.144 µs (39.1%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~e485c134df, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.303 s) : 15303000, 15303000
.   : milestone, 15303000,
appsec (15.013 s) : 15013000, 15013000
.   : milestone, 15013000,
iast (18.292 s) : 18292000, 18292000
.   : milestone, 18292000,
iast_GLOBAL (18.077 s) : 18077000, 18077000
.   : milestone, 18077000,
profiling (14.915 s) : 14915000, 14915000
.   : milestone, 14915000,
tracing (14.831 s) : 14831000, 14831000
.   : milestone, 14831000,
section candidate
no_agent (15.079 s) : 15079000, 15079000
.   : milestone, 15079000,
appsec (14.988 s) : 14988000, 14988000
.   : milestone, 14988000,
iast (18.259 s) : 18259000, 18259000
.   : milestone, 18259000,
iast_GLOBAL (18.116 s) : 18116000, 18116000
.   : milestone, 18116000,
profiling (14.947 s) : 14947000, 14947000
.   : milestone, 14947000,
tracing (15.029 s) : 15029000, 15029000
.   : milestone, 15029000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.303 s [15.303 s, 15.303 s] -
appsec 15.013 s [15.013 s, 15.013 s] -290.0 ms (-1.9%)
iast 18.292 s [18.292 s, 18.292 s] 2.989 s (19.5%)
iast_GLOBAL 18.077 s [18.077 s, 18.077 s] 2.774 s (18.1%)
profiling 14.915 s [14.915 s, 14.915 s] -388.0 ms (-2.5%)
tracing 14.831 s [14.831 s, 14.831 s] -472.0 ms (-3.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.079 s [15.079 s, 15.079 s] -
appsec 14.988 s [14.988 s, 14.988 s] -91.0 ms (-0.6%)
iast 18.259 s [18.259 s, 18.259 s] 3.18 s (21.1%)
iast_GLOBAL 18.116 s [18.116 s, 18.116 s] 3.037 s (20.1%)
profiling 14.947 s [14.947 s, 14.947 s] -132.0 ms (-0.9%)
tracing 15.029 s [15.029 s, 15.029 s] -50.0 ms (-0.3%)

- DDEvaluator.evaluate() now returns PROVIDER_FATAL when fatalErrorMessage
  is set, taking precedence over PROVIDER_NOT_READY and normal evaluation
- Two-arg DDEvaluator constructor (configCallback, fatalCallback) made public
- Provider.buildEvaluator() wires onProviderFatal() as fatalCallback via
  the two-arg constructor; onProviderFatal() emits PROVIDER_ERROR event
- DefaultConfigurationPoller.sendRequest() removes special 404 early return;
  400 and 404 added to isNonRetryableError() so they trigger fatal listener
- Added unit tests for fatal path: onFatalError behavior, evaluate after
  fatal, fatal takes precedence over existing config, callback invocation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant