-
Notifications
You must be signed in to change notification settings - Fork 319
Fix race condition in ApiSecuritySamplerImpl #10010
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 59 metrics, 6 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.103 s) : 0, 1102763
Total [baseline] (10.811 s) : 0, 10810728
Agent [candidate] (1.114 s) : 0, 1113960
Total [candidate] (10.961 s) : 0, 10960768
section appsec
Agent [baseline] (1.281 s) : 0, 1281182
Total [baseline] (11.156 s) : 0, 11155848
Agent [candidate] (1.29 s) : 0, 1289806
Total [candidate] (11.209 s) : 0, 11208550
section iast
Agent [baseline] (1.238 s) : 0, 1237573
Total [baseline] (11.235 s) : 0, 11234667
Agent [candidate] (1.25 s) : 0, 1250147
Total [candidate] (11.433 s) : 0, 11432890
section profiling
Agent [baseline] (1.236 s) : 0, 1236319
Total [baseline] (11.159 s) : 0, 11158836
Agent [candidate] (1.247 s) : 0, 1246584
Total [candidate] (11.018 s) : 0, 11017709
gantt
title petclinic - break down per module: candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.483 ms) : 0, 1483
crashtracking [candidate] (1.51 ms) : 0, 1510
BytebuddyAgent [baseline] (708.611 ms) : 0, 708611
BytebuddyAgent [candidate] (716.685 ms) : 0, 716685
GlobalTracer [baseline] (249.195 ms) : 0, 249195
GlobalTracer [candidate] (251.524 ms) : 0, 251524
AppSec [baseline] (31.971 ms) : 0, 31971
AppSec [candidate] (32.291 ms) : 0, 32291
Debugger [baseline] (64.171 ms) : 0, 64171
Debugger [candidate] (64.211 ms) : 0, 64211
Remote Config [baseline] (629.398 µs) : 0, 629
Remote Config [candidate] (622.596 µs) : 0, 623
Telemetry [baseline] (8.305 ms) : 0, 8305
Telemetry [candidate] (8.319 ms) : 0, 8319
Flare Poller [baseline] (3.675 ms) : 0, 3675
Flare Poller [candidate] (3.769 ms) : 0, 3769
section appsec
crashtracking [baseline] (1.473 ms) : 0, 1473
crashtracking [candidate] (1.494 ms) : 0, 1494
BytebuddyAgent [baseline] (731.252 ms) : 0, 731252
BytebuddyAgent [candidate] (736.657 ms) : 0, 736657
GlobalTracer [baseline] (240.487 ms) : 0, 240487
GlobalTracer [candidate] (241.957 ms) : 0, 241957
AppSec [baseline] (174.065 ms) : 0, 174065
AppSec [candidate] (174.802 ms) : 0, 174802
Debugger [baseline] (61.424 ms) : 0, 61424
Debugger [candidate] (61.896 ms) : 0, 61896
Remote Config [baseline] (681.803 µs) : 0, 682
Remote Config [candidate] (682.806 µs) : 0, 683
Telemetry [baseline] (8.203 ms) : 0, 8203
Telemetry [candidate] (8.353 ms) : 0, 8353
Flare Poller [baseline] (3.927 ms) : 0, 3927
Flare Poller [candidate] (3.997 ms) : 0, 3997
IAST [baseline] (24.806 ms) : 0, 24806
IAST [candidate] (24.963 ms) : 0, 24963
section iast
crashtracking [baseline] (1.468 ms) : 0, 1468
crashtracking [candidate] (1.514 ms) : 0, 1514
BytebuddyAgent [baseline] (830.885 ms) : 0, 830885
BytebuddyAgent [candidate] (839.074 ms) : 0, 839074
GlobalTracer [baseline] (237.171 ms) : 0, 237171
GlobalTracer [candidate] (239.016 ms) : 0, 239016
AppSec [baseline] (32.939 ms) : 0, 32939
AppSec [candidate] (34.383 ms) : 0, 34383
Debugger [baseline] (60.399 ms) : 0, 60399
Debugger [candidate] (61.659 ms) : 0, 61659
Remote Config [baseline] (531.295 µs) : 0, 531
Remote Config [candidate] (551.372 µs) : 0, 551
Telemetry [baseline] (7.585 ms) : 0, 7585
Telemetry [candidate] (7.711 ms) : 0, 7711
Flare Poller [baseline] (3.483 ms) : 0, 3483
Flare Poller [candidate] (3.537 ms) : 0, 3537
IAST [baseline] (28.354 ms) : 0, 28354
IAST [candidate] (27.789 ms) : 0, 27789
section profiling
crashtracking [baseline] (1.442 ms) : 0, 1442
crashtracking [candidate] (1.457 ms) : 0, 1457
BytebuddyAgent [baseline] (735.482 ms) : 0, 735482
BytebuddyAgent [candidate] (744.322 ms) : 0, 744322
GlobalTracer [baseline] (223.206 ms) : 0, 223206
GlobalTracer [candidate] (224.566 ms) : 0, 224566
AppSec [baseline] (32.429 ms) : 0, 32429
AppSec [candidate] (32.897 ms) : 0, 32897
Debugger [baseline] (63.909 ms) : 0, 63909
Debugger [candidate] (63.979 ms) : 0, 63979
Remote Config [baseline] (654.813 µs) : 0, 655
Remote Config [candidate] (652.783 µs) : 0, 653
Telemetry [baseline] (8.093 ms) : 0, 8093
Telemetry [candidate] (8.101 ms) : 0, 8101
Flare Poller [baseline] (3.918 ms) : 0, 3918
Flare Poller [candidate] (3.858 ms) : 0, 3858
ProfilingAgent [baseline] (98.238 ms) : 0, 98238
ProfilingAgent [candidate] (97.074 ms) : 0, 97074
Profiling [baseline] (98.824 ms) : 0, 98824
Profiling [candidate] (97.652 ms) : 0, 97652
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.109 s) : 0, 1108923
Total [baseline] (8.888 s) : 0, 8888416
Agent [candidate] (1.097 s) : 0, 1096848
Total [candidate] (8.827 s) : 0, 8826795
section iast
Agent [baseline] (1.243 s) : 0, 1242864
Total [baseline] (9.529 s) : 0, 9528779
Agent [candidate] (1.241 s) : 0, 1240590
Total [candidate] (9.562 s) : 0, 9562143
gantt
title insecure-bank - break down per module: candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.498 ms) : 0, 1498
crashtracking [candidate] (1.473 ms) : 0, 1473
BytebuddyAgent [baseline] (713.752 ms) : 0, 713752
BytebuddyAgent [candidate] (705.65 ms) : 0, 705650
GlobalTracer [baseline] (249.981 ms) : 0, 249981
GlobalTracer [candidate] (248.212 ms) : 0, 248212
AppSec [baseline] (32.347 ms) : 0, 32347
AppSec [candidate] (31.805 ms) : 0, 31805
Debugger [baseline] (63.685 ms) : 0, 63685
Debugger [candidate] (62.692 ms) : 0, 62692
Remote Config [baseline] (631.671 µs) : 0, 632
Remote Config [candidate] (610.23 µs) : 0, 610
Telemetry [baseline] (8.298 ms) : 0, 8298
Telemetry [candidate] (8.095 ms) : 0, 8095
Flare Poller [baseline] (3.707 ms) : 0, 3707
Flare Poller [candidate] (3.627 ms) : 0, 3627
section iast
crashtracking [baseline] (1.486 ms) : 0, 1486
crashtracking [candidate] (1.49 ms) : 0, 1490
BytebuddyAgent [baseline] (836.946 ms) : 0, 836946
BytebuddyAgent [candidate] (832.919 ms) : 0, 832919
GlobalTracer [baseline] (237.63 ms) : 0, 237630
GlobalTracer [candidate] (237.654 ms) : 0, 237654
AppSec [baseline] (32.034 ms) : 0, 32034
AppSec [candidate] (35.072 ms) : 0, 35072
Debugger [baseline] (59.13 ms) : 0, 59130
Debugger [candidate] (60.285 ms) : 0, 60285
Remote Config [baseline] (543.451 µs) : 0, 543
Remote Config [candidate] (535.799 µs) : 0, 536
Telemetry [baseline] (7.632 ms) : 0, 7632
Telemetry [candidate] (7.573 ms) : 0, 7573
Flare Poller [baseline] (3.474 ms) : 0, 3474
Flare Poller [candidate] (3.455 ms) : 0, 3455
IAST [baseline] (29.129 ms) : 0, 29129
IAST [candidate] (26.726 ms) : 0, 26726
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 petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section baseline
no_agent (19.281 ms) : 19088, 19474
. : milestone, 19281,
appsec (18.9 ms) : 18709, 19091
. : milestone, 18900,
code_origins (17.815 ms) : 17641, 17988
. : milestone, 17815,
iast (17.384 ms) : 17209, 17558
. : milestone, 17384,
profiling (18.457 ms) : 18274, 18641
. : milestone, 18457,
tracing (17.472 ms) : 17300, 17644
. : milestone, 17472,
section candidate
no_agent (19.316 ms) : 19119, 19513
. : milestone, 19316,
appsec (19.633 ms) : 19430, 19836
. : milestone, 19633,
code_origins (17.481 ms) : 17306, 17655
. : milestone, 17481,
iast (17.611 ms) : 17438, 17783
. : milestone, 17611,
profiling (19.835 ms) : 19638, 20032
. : milestone, 19835,
tracing (17.908 ms) : 17729, 18087
. : milestone, 17908,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section baseline
no_agent (1.219 ms) : 1208, 1231
. : milestone, 1219,
iast (3.184 ms) : 3146, 3222
. : milestone, 3184,
iast_FULL (5.872 ms) : 5813, 5931
. : milestone, 5872,
iast_GLOBAL (3.786 ms) : 3725, 3847
. : milestone, 3786,
profiling (2.141 ms) : 2121, 2161
. : milestone, 2141,
tracing (1.796 ms) : 1781, 1811
. : milestone, 1796,
section candidate
no_agent (1.226 ms) : 1213, 1238
. : milestone, 1226,
iast (3.278 ms) : 3231, 3326
. : milestone, 3278,
iast_FULL (5.803 ms) : 5746, 5861
. : milestone, 5803,
iast_GLOBAL (3.461 ms) : 3416, 3506
. : milestone, 3461,
profiling (2.177 ms) : 2156, 2197
. : milestone, 2177,
tracing (1.863 ms) : 1848, 1879
. : milestone, 1863,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 2 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1467, 1490
. : milestone, 1479,
appsec (3.724 ms) : 3505, 3943
. : milestone, 3724,
iast (2.227 ms) : 2162, 2292
. : milestone, 2227,
iast_GLOBAL (2.264 ms) : 2199, 2329
. : milestone, 2264,
profiling (2.483 ms) : 2323, 2644
. : milestone, 2483,
tracing (2.042 ms) : 1991, 2093
. : milestone, 2042,
section candidate
no_agent (1.478 ms) : 1467, 1490
. : milestone, 1478,
appsec (3.719 ms) : 3500, 3938
. : milestone, 3719,
iast (2.216 ms) : 2152, 2281
. : milestone, 2216,
iast_GLOBAL (2.266 ms) : 2201, 2331
. : milestone, 2266,
profiling (2.088 ms) : 2034, 2142
. : milestone, 2088,
tracing (2.057 ms) : 2005, 2108
. : milestone, 2057,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.57.0-SNAPSHOT~a49f1b2289, baseline=1.57.0-SNAPSHOT~c8bb44440b
dateFormat X
axisFormat %s
section baseline
no_agent (15.045 s) : 15045000, 15045000
. : milestone, 15045000,
appsec (14.922 s) : 14922000, 14922000
. : milestone, 14922000,
iast (18.64 s) : 18640000, 18640000
. : milestone, 18640000,
iast_GLOBAL (17.748 s) : 17748000, 17748000
. : milestone, 17748000,
profiling (14.687 s) : 14687000, 14687000
. : milestone, 14687000,
tracing (14.691 s) : 14691000, 14691000
. : milestone, 14691000,
section candidate
no_agent (15.299 s) : 15299000, 15299000
. : milestone, 15299000,
appsec (15.068 s) : 15068000, 15068000
. : milestone, 15068000,
iast (18.569 s) : 18569000, 18569000
. : milestone, 18569000,
iast_GLOBAL (18.114 s) : 18114000, 18114000
. : milestone, 18114000,
profiling (15.133 s) : 15133000, 15133000
. : milestone, 15133000,
tracing (14.801 s) : 14801000, 14801000
. : milestone, 14801000,
|
| * This method only serves as a final confirmation gate before schema extraction. | ||
| */ | ||
| @Override | ||
| public boolean sampleRequest(AppSecRequestContext ctx) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method seems useless with the new approach but, I decided to maintain it to keep the checks although updateApiAccessIfExpired is not necessary anymore
What Does This Do
Fixed race condition in ApiSecuritySamplerImpl in standalone mode:
isExpired=truebefore any updated theaccessMappreSampleRequest()now updates map immediately after acquiring semaphore, preventing concurrent requests from seeing stale expirationstate
Motivation
API Security standalone system tests were failing intermittently in CI with
_sampling_priority_v1not being set to 2, causing traces to not be retained as expected.Related with APPSEC-57815
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any useful labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]