Update evaluation reason for empty waterfall to DEFAULT instead of ERROR/GENERAL per REASON.9#11193
Update evaluation reason for empty waterfall to DEFAULT instead of ERROR/GENERAL per REASON.9#11193
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 63 metrics, 8 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.056 s) : 0, 1055698
Total [baseline] (8.82 s) : 0, 8820041
Agent [candidate] (1.052 s) : 0, 1052400
Total [candidate] (8.802 s) : 0, 8802283
section iast
Agent [baseline] (1.23 s) : 0, 1230324
Total [baseline] (9.569 s) : 0, 9568746
Agent [candidate] (1.244 s) : 0, 1244116
Total [candidate] (9.563 s) : 0, 9563168
gantt
title insecure-bank - break down per module: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.237 ms) : 0, 1237
crashtracking [candidate] (1.216 ms) : 0, 1216
BytebuddyAgent [baseline] (634.422 ms) : 0, 634422
BytebuddyAgent [candidate] (633.73 ms) : 0, 633730
AgentMeter [baseline] (29.417 ms) : 0, 29417
AgentMeter [candidate] (29.398 ms) : 0, 29398
GlobalTracer [baseline] (248.833 ms) : 0, 248833
GlobalTracer [candidate] (248.36 ms) : 0, 248360
AppSec [baseline] (32.657 ms) : 0, 32657
AppSec [candidate] (32.119 ms) : 0, 32119
Debugger [baseline] (60.088 ms) : 0, 60088
Debugger [candidate] (59.401 ms) : 0, 59401
Remote Config [baseline] (603.263 µs) : 0, 603
Remote Config [candidate] (597.908 µs) : 0, 598
Telemetry [baseline] (8.037 ms) : 0, 8037
Telemetry [candidate] (7.975 ms) : 0, 7975
Flare Poller [baseline] (4.326 ms) : 0, 4326
Flare Poller [candidate] (3.532 ms) : 0, 3532
section iast
crashtracking [baseline] (1.224 ms) : 0, 1224
crashtracking [candidate] (1.242 ms) : 0, 1242
BytebuddyAgent [baseline] (808.414 ms) : 0, 808414
BytebuddyAgent [candidate] (820.119 ms) : 0, 820119
AgentMeter [baseline] (11.334 ms) : 0, 11334
AgentMeter [candidate] (11.689 ms) : 0, 11689
GlobalTracer [baseline] (238.424 ms) : 0, 238424
GlobalTracer [candidate] (239.895 ms) : 0, 239895
AppSec [baseline] (29.551 ms) : 0, 29551
AppSec [candidate] (28.897 ms) : 0, 28897
Debugger [baseline] (66.8 ms) : 0, 66800
Debugger [candidate] (66.708 ms) : 0, 66708
Remote Config [baseline] (529.189 µs) : 0, 529
Remote Config [candidate] (531.319 µs) : 0, 531
Telemetry [baseline] (7.836 ms) : 0, 7836
Telemetry [candidate] (7.85 ms) : 0, 7850
Flare Poller [baseline] (3.47 ms) : 0, 3470
Flare Poller [candidate] (3.508 ms) : 0, 3508
IAST [baseline] (26.697 ms) : 0, 26697
IAST [candidate] (27.558 ms) : 0, 27558
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.065 s) : 0, 1064694
Total [baseline] (11.055 s) : 0, 11054650
Agent [candidate] (1.057 s) : 0, 1056507
Total [candidate] (10.985 s) : 0, 10984571
section appsec
Agent [baseline] (1.26 s) : 0, 1259790
Total [baseline] (11.095 s) : 0, 11095143
Agent [candidate] (1.259 s) : 0, 1259046
Total [candidate] (11.142 s) : 0, 11141532
section iast
Agent [baseline] (1.232 s) : 0, 1231744
Total [baseline] (11.3 s) : 0, 11300143
Agent [candidate] (1.233 s) : 0, 1233164
Total [candidate] (11.158 s) : 0, 11158335
section profiling
Agent [baseline] (1.193 s) : 0, 1192794
Total [baseline] (11.04 s) : 0, 11039695
Agent [candidate] (1.189 s) : 0, 1188773
Total [candidate] (10.976 s) : 0, 10976186
gantt
title petclinic - break down per module: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.25 ms) : 0, 1250
crashtracking [candidate] (1.238 ms) : 0, 1238
BytebuddyAgent [baseline] (640.608 ms) : 0, 640608
BytebuddyAgent [candidate] (633.995 ms) : 0, 633995
AgentMeter [baseline] (29.591 ms) : 0, 29591
AgentMeter [candidate] (29.387 ms) : 0, 29387
GlobalTracer [baseline] (250.489 ms) : 0, 250489
GlobalTracer [candidate] (249.111 ms) : 0, 249111
AppSec [baseline] (32.489 ms) : 0, 32489
AppSec [candidate] (32.437 ms) : 0, 32437
Debugger [baseline] (60.845 ms) : 0, 60845
Debugger [candidate] (60.446 ms) : 0, 60446
Remote Config [baseline] (609.865 µs) : 0, 610
Remote Config [candidate] (598.216 µs) : 0, 598
Telemetry [baseline] (8.127 ms) : 0, 8127
Telemetry [candidate] (8.047 ms) : 0, 8047
Flare Poller [baseline] (4.4 ms) : 0, 4400
Flare Poller [candidate] (5.178 ms) : 0, 5178
section appsec
crashtracking [baseline] (1.236 ms) : 0, 1236
crashtracking [candidate] (1.226 ms) : 0, 1226
BytebuddyAgent [baseline] (674.325 ms) : 0, 674325
BytebuddyAgent [candidate] (673.464 ms) : 0, 673464
AgentMeter [baseline] (12.234 ms) : 0, 12234
AgentMeter [candidate] (12.203 ms) : 0, 12203
GlobalTracer [baseline] (248.342 ms) : 0, 248342
GlobalTracer [candidate] (248.679 ms) : 0, 248679
AppSec [baseline] (186.793 ms) : 0, 186793
AppSec [candidate] (187.339 ms) : 0, 187339
Debugger [baseline] (64.638 ms) : 0, 64638
Debugger [candidate] (63.934 ms) : 0, 63934
Remote Config [baseline] (594.697 µs) : 0, 595
Remote Config [candidate] (568.204 µs) : 0, 568
Telemetry [baseline] (7.845 ms) : 0, 7845
Telemetry [candidate] (7.792 ms) : 0, 7792
Flare Poller [baseline] (3.42 ms) : 0, 3420
Flare Poller [candidate] (3.424 ms) : 0, 3424
IAST [baseline] (24.068 ms) : 0, 24068
IAST [candidate] (24.094 ms) : 0, 24094
section iast
crashtracking [baseline] (1.235 ms) : 0, 1235
crashtracking [candidate] (1.225 ms) : 0, 1225
BytebuddyAgent [baseline] (810.197 ms) : 0, 810197
BytebuddyAgent [candidate] (810.323 ms) : 0, 810323
AgentMeter [baseline] (11.37 ms) : 0, 11370
AgentMeter [candidate] (11.432 ms) : 0, 11432
GlobalTracer [baseline] (238.8 ms) : 0, 238800
GlobalTracer [candidate] (239.066 ms) : 0, 239066
AppSec [baseline] (27.411 ms) : 0, 27411
AppSec [candidate] (32.179 ms) : 0, 32179
Debugger [baseline] (65.061 ms) : 0, 65061
Debugger [candidate] (64.575 ms) : 0, 64575
Remote Config [baseline] (536.638 µs) : 0, 537
Remote Config [candidate] (527.668 µs) : 0, 528
Telemetry [baseline] (7.753 ms) : 0, 7753
Telemetry [candidate] (7.864 ms) : 0, 7864
Flare Poller [baseline] (3.409 ms) : 0, 3409
Flare Poller [candidate] (3.471 ms) : 0, 3471
IAST [baseline] (29.916 ms) : 0, 29916
IAST [candidate] (26.499 ms) : 0, 26499
section profiling
crashtracking [baseline] (1.227 ms) : 0, 1227
crashtracking [candidate] (1.194 ms) : 0, 1194
BytebuddyAgent [baseline] (696.633 ms) : 0, 696633
BytebuddyAgent [candidate] (694.807 ms) : 0, 694807
AgentMeter [baseline] (8.934 ms) : 0, 8934
AgentMeter [candidate] (8.989 ms) : 0, 8989
GlobalTracer [baseline] (208.467 ms) : 0, 208467
GlobalTracer [candidate] (208.22 ms) : 0, 208220
AppSec [baseline] (32.854 ms) : 0, 32854
AppSec [candidate] (32.776 ms) : 0, 32776
Debugger [baseline] (66.08 ms) : 0, 66080
Debugger [candidate] (66.054 ms) : 0, 66054
Remote Config [baseline] (590.942 µs) : 0, 591
Remote Config [candidate] (568.561 µs) : 0, 569
Telemetry [baseline] (7.894 ms) : 0, 7894
Telemetry [candidate] (7.832 ms) : 0, 7832
Flare Poller [baseline] (3.514 ms) : 0, 3514
Flare Poller [candidate] (3.475 ms) : 0, 3475
ProfilingAgent [baseline] (94.308 ms) : 0, 94308
ProfilingAgent [candidate] (92.994 ms) : 0, 92994
Profiling [baseline] (94.885 ms) : 0, 94885
Profiling [candidate] (93.557 ms) : 0, 93557
LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 2 performance regressions! Performance is the same for 17 metrics, 15 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section baseline
no_agent (1.24 ms) : 1228, 1252
. : milestone, 1240,
iast (3.394 ms) : 3341, 3447
. : milestone, 3394,
iast_FULL (5.998 ms) : 5937, 6059
. : milestone, 5998,
iast_GLOBAL (3.579 ms) : 3526, 3633
. : milestone, 3579,
profiling (2.27 ms) : 2248, 2292
. : milestone, 2270,
tracing (1.884 ms) : 1869, 1899
. : milestone, 1884,
section candidate
no_agent (1.27 ms) : 1257, 1282
. : milestone, 1270,
iast (3.469 ms) : 3422, 3516
. : milestone, 3469,
iast_FULL (5.933 ms) : 5874, 5991
. : milestone, 5933,
iast_GLOBAL (3.767 ms) : 3698, 3836
. : milestone, 3767,
profiling (2.39 ms) : 2367, 2412
. : milestone, 2390,
tracing (1.954 ms) : 1937, 1971
. : milestone, 1954,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section baseline
no_agent (18.203 ms) : 18018, 18388
. : milestone, 18203,
appsec (18.792 ms) : 18604, 18980
. : milestone, 18792,
code_origins (18.082 ms) : 17905, 18259
. : milestone, 18082,
iast (18.97 ms) : 18776, 19165
. : milestone, 18970,
profiling (18.185 ms) : 18004, 18367
. : milestone, 18185,
tracing (18.013 ms) : 17832, 18195
. : milestone, 18013,
section candidate
no_agent (18.953 ms) : 18763, 19143
. : milestone, 18953,
appsec (18.823 ms) : 18632, 19015
. : milestone, 18823,
code_origins (19.075 ms) : 18880, 19270
. : milestone, 19075,
iast (17.796 ms) : 17621, 17970
. : milestone, 17796,
profiling (18.297 ms) : 18117, 18477
. : milestone, 18297,
tracing (17.831 ms) : 17657, 18006
. : milestone, 17831,
DacapoParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 1 unstable metrics.
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section baseline
no_agent (1.485 ms) : 1473, 1496
. : milestone, 1485,
appsec (3.859 ms) : 3629, 4088
. : milestone, 3859,
iast (2.267 ms) : 2198, 2337
. : milestone, 2267,
iast_GLOBAL (2.313 ms) : 2243, 2383
. : milestone, 2313,
profiling (2.517 ms) : 2351, 2684
. : milestone, 2517,
tracing (2.071 ms) : 2017, 2124
. : milestone, 2071,
section candidate
no_agent (1.484 ms) : 1472, 1496
. : milestone, 1484,
appsec (2.528 ms) : 2473, 2582
. : milestone, 2528,
iast (2.269 ms) : 2199, 2339
. : milestone, 2269,
iast_GLOBAL (2.318 ms) : 2248, 2388
. : milestone, 2318,
profiling (2.494 ms) : 2339, 2649
. : milestone, 2494,
tracing (2.078 ms) : 2025, 2132
. : milestone, 2078,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
dateFormat X
axisFormat %s
section baseline
no_agent (15.649 s) : 15649000, 15649000
. : milestone, 15649000,
appsec (14.752 s) : 14752000, 14752000
. : milestone, 14752000,
iast (18.705 s) : 18705000, 18705000
. : milestone, 18705000,
iast_GLOBAL (18.291 s) : 18291000, 18291000
. : milestone, 18291000,
profiling (15.134 s) : 15134000, 15134000
. : milestone, 15134000,
tracing (14.887 s) : 14887000, 14887000
. : milestone, 14887000,
section candidate
no_agent (14.987 s) : 14987000, 14987000
. : milestone, 14987000,
appsec (14.909 s) : 14909000, 14909000
. : milestone, 14909000,
iast (18.408 s) : 18408000, 18408000
. : milestone, 18408000,
iast_GLOBAL (17.86 s) : 17860000, 17860000
. : milestone, 17860000,
profiling (15.515 s) : 15515000, 15515000
. : milestone, 15515000,
tracing (14.752 s) : 14752000, 14752000
. : milestone, 14752000,
|
- DDEvaluator: add explicit null check for flag.allocations before the iteration loop. A null list throws NPE which gets swallowed as GENERAL; returning GENERAL explicitly with a clear message is safer and testable. - DDEvaluatorTest.testNoAllocations: the empty-allocation case already falls through the for-loop to the DEFAULT return; the test was asserting ERROR/GENERAL which contradicts the fix. Update to assert DEFAULT with no error code.
| } | ||
| } | ||
|
|
||
| return ProviderEvaluation.<T>builder() |
There was a problem hiding this comment.
Here is the default return as required by the spec
|
|
||
| if (isEmpty(flag.allocations)) { | ||
| return error(defaultValue, ErrorCode.GENERAL, "Missing allocations for flag " + flag.key); | ||
| if (flag.allocations == null) { |
There was a problem hiding this comment.
dropping the guard here lets us fall through to the default return below.
Open to adding a short circuit instead if that makes it more readable here.
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in Use ⏳ Processing |
👀 see REASON RFC
Summary
Treats empty waterfall as valid state instead of an error.
ErrorCode.GENERALwhenflag.allocationswas an empty list.forloop at line 111 simply does not iterate, and execution falls through to the existingreturn DEFAULTat line 155.reason=DEFAULTand no error code.Behaviour change
flag.allocationsis emptyreason=ERROR,errorCode=GENERALreason=DEFAULT, no error codeflag.allocationsis nullreason=ERROR,errorCode=GENERAL(explicit guard)reason=ERROR,errorCode=GENERAL(NPE caught by existing catch block)Test plan
evaluate()with an empty allocations list assertreason=DEFAULTand no error code.