-
Notifications
You must be signed in to change notification settings - Fork 467
fix(AAP): reverting usage of json helper function from libddwaf [backport 3.16] #14886
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
Conversation
|
|
ccafc00 to
fd4e683
Compare
## Description Reverting usage of json helper function from libddwaf due to some possibly related memory corruption errors. This is a (only partial) revert of #14215 Also: - improve a test file to ensure the waf is creating a proper handle from this file.
fd4e683 to
8a84424
Compare
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 238 ± 1 ms. The average import time from base is: 240 ± 2 ms. The import time difference between this PR and base is: -2.21 ± 0.08 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate backport-14876-to-3.16 (dc1d3f5) with baseline 3.16 (5aa488a) ❌ Test Failures (1 suite)❌ span - 25/26✅ add-eventTime: ✅ 21.260ms (SLO: <22.500ms -5.5%) vs baseline: +2.6% Memory: ✅ 50.336MB (SLO: <53.000MB -5.0%) vs baseline: +5.0% ✅ add-metricsTime: ✅ 91.266ms (SLO: <93.500ms -2.4%) vs baseline: ~same Memory: ✅ 660.554MB (SLO: <961.000MB 📉 -31.3%) vs baseline: +4.7% ✅ add-tagsTime: ✅ 148.027ms (SLO: <155.000ms -4.5%) vs baseline: -0.2% Memory: ✅ 662.080MB (SLO: <962.500MB 📉 -31.2%) vs baseline: +4.9% ✅ get-contextTime: ✅ 19.180ms (SLO: <20.500ms -6.4%) vs baseline: +0.5% Memory: ✅ 49.064MB (SLO: <53.000MB -7.4%) vs baseline: +4.8% ✅ is-recordingTime: ✅ 19.539ms (SLO: <20.500ms -4.7%) vs baseline: +0.5% Memory: ✅ 49.086MB (SLO: <53.000MB -7.4%) vs baseline: +4.8% ✅ record-exceptionTime: ✅ 38.524ms (SLO: <40.000ms -3.7%) vs baseline: +0.6% Memory: ✅ 42.710MB (SLO: <53.000MB 📉 -19.4%) vs baseline: +4.8% ✅ set-statusTime: ✅ 21.125ms (SLO: <22.000ms -4.0%) vs baseline: +0.6% Memory: ✅ 49.090MB (SLO: <53.000MB -7.4%) vs baseline: +4.5% ✅ startTime: ✅ 19.803ms (SLO: <20.500ms -3.4%) vs baseline: +3.3% Memory: ✅ 48.987MB (SLO: <53.000MB -7.6%) vs baseline: +4.5% ✅ start-finishTime: ✅ 51.555ms (SLO: <52.500ms 🟡 -1.8%) vs baseline: +0.1% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 52.794ms (SLO: <54.500ms -3.1%) vs baseline: ~same Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.6% ❌ start-finish-traceid128Time: ❌ 55.192ms (SLO: <55.000ms +0.3%) vs baseline: +1.2% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.8% ✅ start-traceid128Time: ✅ 19.560ms (SLO: <22.500ms 📉 -13.1%) vs baseline: +0.4% Memory: ✅ 49.060MB (SLO: <53.000MB -7.4%) vs baseline: +4.9% ✅ update-nameTime: ✅ 20.211ms (SLO: <22.000ms -8.1%) vs baseline: ~same Memory: ✅ 49.778MB (SLO: <53.000MB -6.1%) vs baseline: +4.9% 📈 Performance Regressions (1 suite)📈 iast_aspects - 40/40✅ re_expand_aspectTime: ✅ 32.192µs (SLO: <40.000µs 📉 -19.5%) vs baseline: +0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ re_expand_noaspectTime: ✅ 29.497µs (SLO: <40.000µs 📉 -26.3%) vs baseline: +2.1% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_findall_aspectTime: ✅ 2.911µs (SLO: <10.000µs 📉 -70.9%) vs baseline: +0.6% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ re_findall_noaspectTime: ✅ 1.421µs (SLO: <10.000µs 📉 -85.8%) vs baseline: +0.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ re_finditer_aspectTime: ✅ 4.601µs (SLO: <10.000µs 📉 -54.0%) vs baseline: +4.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_finditer_noaspectTime: ✅ 1.407µs (SLO: <10.000µs 📉 -85.9%) vs baseline: -1.3% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ re_fullmatch_aspectTime: ✅ 2.657µs (SLO: <10.000µs 📉 -73.4%) vs baseline: -1.3% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ re_fullmatch_noaspectTime: ✅ 1.288µs (SLO: <10.000µs 📉 -87.1%) vs baseline: -0.5% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ re_group_aspectTime: ✅ 3.117µs (SLO: <10.000µs 📉 -68.8%) vs baseline: +6.1% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_group_noaspectTime: ✅ 1.599µs (SLO: <10.000µs 📉 -84.0%) vs baseline: -0.3% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ re_groups_aspectTime: ✅ 3.300µs (SLO: <10.000µs 📉 -67.0%) vs baseline: +7.8% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.6% ✅ re_groups_noaspectTime: ✅ 1.685µs (SLO: <10.000µs 📉 -83.2%) vs baseline: -1.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ re_match_aspectTime: ✅ 3.217µs (SLO: <10.000µs 📉 -67.8%) vs baseline: 📈 +17.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ re_match_noaspectTime: ✅ 1.300µs (SLO: <10.000µs 📉 -87.0%) vs baseline: +0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ re_search_aspectTime: ✅ 2.581µs (SLO: <10.000µs 📉 -74.2%) vs baseline: +1.3% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ re_search_noaspectTime: ✅ 1.199µs (SLO: <10.000µs 📉 -88.0%) vs baseline: ~same Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_sub_aspectTime: ✅ 3.388µs (SLO: <10.000µs 📉 -66.1%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_sub_noaspectTime: ✅ 1.532µs (SLO: <10.000µs 📉 -84.7%) vs baseline: -0.3% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_subn_aspectTime: ✅ 3.888µs (SLO: <10.000µs 📉 -61.1%) vs baseline: +6.6% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ re_subn_noaspectTime: ✅ 1.617µs (SLO: <10.000µs 📉 -83.8%) vs baseline: +0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.493ms (SLO: <22.300ms -8.1%) vs baseline: ~same Memory: ✅ 65.468MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.342ms (SLO: <1.450ms -7.4%) vs baseline: +0.2% Memory: ✅ 64.563MB (SLO: <67.000MB -3.6%) vs baseline: +5.0% ✅ iastTime: ✅ 20.487ms (SLO: <22.250ms -7.9%) vs baseline: +0.2% Memory: ✅ 65.470MB (SLO: <67.000MB -2.3%) vs baseline: +4.7% ✅ profilerTime: ✅ 15.236ms (SLO: <16.550ms -7.9%) vs baseline: -0.1% Memory: ✅ 53.654MB (SLO: <54.500MB 🟡 -1.6%) vs baseline: +4.7% ✅ resource-renamingTime: ✅ 20.630ms (SLO: <21.750ms -5.1%) vs baseline: +0.3% Memory: ✅ 65.313MB (SLO: <67.000MB -2.5%) vs baseline: +4.5% ✅ span-code-originTime: ✅ 26.213ms (SLO: <28.200ms -7.0%) vs baseline: -0.3% Memory: ✅ 68.425MB (SLO: <69.500MB 🟡 -1.5%) vs baseline: +5.6% ✅ tracerTime: ✅ 20.502ms (SLO: <21.750ms -5.7%) vs baseline: +0.1% Memory: ✅ 65.492MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 21.986ms (SLO: <23.500ms -6.4%) vs baseline: -0.2% Memory: ✅ 66.552MB (SLO: <67.500MB 🟡 -1.4%) vs baseline: +4.7% ✅ tracer-dont-create-db-spansTime: ✅ 19.351ms (SLO: <21.500ms -10.0%) vs baseline: +0.2% Memory: ✅ 65.391MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.6% ✅ tracer-minimalTime: ✅ 16.591ms (SLO: <17.500ms -5.2%) vs baseline: -0.4% Memory: ✅ 65.422MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 20.452ms (SLO: <21.750ms -6.0%) vs baseline: ~same Memory: ✅ 71.259MB (SLO: <72.500MB 🟡 -1.7%) vs baseline: +4.6% ✅ tracer-no-cachesTime: ✅ 18.443ms (SLO: <19.650ms -6.1%) vs baseline: ~same Memory: ✅ 65.359MB (SLO: <67.000MB -2.4%) vs baseline: +4.7% ✅ tracer-no-databasesTime: ✅ 18.823ms (SLO: <20.100ms -6.4%) vs baseline: -0.1% Memory: ✅ 65.456MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% ✅ tracer-no-middlewareTime: ✅ 20.132ms (SLO: <21.500ms -6.4%) vs baseline: ~same Memory: ✅ 65.497MB (SLO: <67.000MB -2.2%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.337ms (SLO: <22.000ms -7.6%) vs baseline: ~same Memory: ✅ 65.452MB (SLO: <67.000MB -2.3%) vs baseline: +4.6% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.221ms (SLO: <19.850ms -8.2%) vs baseline: +0.6% Memory: ✅ 65.254MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ errortracking-enabled-userTime: ✅ 18.096ms (SLO: <19.400ms -6.7%) vs baseline: ~same Memory: ✅ 65.352MB (SLO: <66.500MB 🟡 -1.7%) vs baseline: +5.0% ✅ tracer-enabledTime: ✅ 18.056ms (SLO: <19.450ms -7.2%) vs baseline: -0.2% Memory: ✅ 65.333MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.0% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.571ms (SLO: <4.750ms -3.8%) vs baseline: +0.2% Memory: ✅ 61.951MB (SLO: <65.000MB -4.7%) vs baseline: +4.7% ✅ appsec-postTime: ✅ 6.567ms (SLO: <6.750ms -2.7%) vs baseline: +0.3% Memory: ✅ 61.951MB (SLO: <65.000MB -4.7%) vs baseline: +4.9% ✅ appsec-telemetryTime: ✅ 4.567ms (SLO: <4.750ms -3.8%) vs baseline: ~same Memory: ✅ 61.932MB (SLO: <65.000MB -4.7%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.855ms (SLO: <2.000ms -7.2%) vs baseline: +0.2% Memory: ✅ 45.397MB (SLO: <47.000MB -3.4%) vs baseline: +4.7% ✅ iast-getTime: ✅ 1.862ms (SLO: <2.000ms -6.9%) vs baseline: +0.2% Memory: ✅ 42.349MB (SLO: <49.000MB 📉 -13.6%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.911ms (SLO: <2.100ms -9.0%) vs baseline: ~same Memory: ✅ 46.517MB (SLO: <47.000MB 🟡 -1.0%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 3.380ms (SLO: <3.650ms -7.4%) vs baseline: +0.4% Memory: ✅ 52.258MB (SLO: <53.500MB -2.3%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.371ms (SLO: <3.650ms -7.6%) vs baseline: +0.5% Memory: ✅ 52.199MB (SLO: <53.500MB -2.4%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 3.363ms (SLO: <3.650ms -7.9%) vs baseline: +0.3% Memory: ✅ 58.232MB (SLO: <60.000MB -2.9%) vs baseline: +4.7% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 42.388ms (SLO: <47.150ms 📉 -10.1%) vs baseline: -0.3% Memory: ✅ 44.492MB (SLO: <47.000MB -5.3%) vs baseline: +5.0% ✅ add-metricsTime: ✅ 316.372ms (SLO: <344.800ms -8.2%) vs baseline: +0.5% Memory: ✅ 595.943MB (SLO: <600.000MB 🟡 -0.7%) vs baseline: +5.0% ✅ add-tagsTime: ✅ 286.319ms (SLO: <314.000ms -8.8%) vs baseline: +0.4% Memory: ✅ 597.344MB (SLO: <600.000MB 🟡 -0.4%) vs baseline: +4.9% ✅ get-contextTime: ✅ 80.663ms (SLO: <92.350ms 📉 -12.7%) vs baseline: +0.2% Memory: ✅ 40.046MB (SLO: <46.500MB 📉 -13.9%) vs baseline: +5.0% ✅ is-recordingTime: ✅ 38.997ms (SLO: <44.500ms 📉 -12.4%) vs baseline: ~same Memory: ✅ 43.993MB (SLO: <47.500MB -7.4%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 58.751ms (SLO: <67.650ms 📉 -13.2%) vs baseline: -0.4% Memory: ✅ 40.305MB (SLO: <47.000MB 📉 -14.2%) vs baseline: +4.9% ✅ set-statusTime: ✅ 45.107ms (SLO: <50.400ms 📉 -10.5%) vs baseline: +1.2% Memory: ✅ 44.013MB (SLO: <47.000MB -6.4%) vs baseline: +5.0% ✅ startTime: ✅ 38.182ms (SLO: <43.450ms 📉 -12.1%) vs baseline: +0.6% Memory: ✅ 43.960MB (SLO: <47.000MB -6.5%) vs baseline: +4.9% ✅ start-finishTime: ✅ 82.811ms (SLO: <88.000ms -5.9%) vs baseline: +0.6% Memory: ✅ 34.603MB (SLO: <46.500MB 📉 -25.6%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 84.386ms (SLO: <89.000ms -5.2%) vs baseline: +0.5% Memory: ✅ 34.623MB (SLO: <46.500MB 📉 -25.5%) vs baseline: +5.1% ✅ update-nameTime: ✅ 40.109ms (SLO: <45.150ms 📉 -11.2%) vs baseline: ~same Memory: ✅ 44.252MB (SLO: <47.000MB -5.8%) vs baseline: +4.9%
|
Backport 8235d03 from #14876 to 3.16.
Description
Reverting usage of json helper function from libddwaf due to some possibly related memory corruption errors.
This is a (only partial) revert of #14215
Also:
APPSEC-59690