-
Notifications
You must be signed in to change notification settings - Fork 467
fix(internal): fix for potential race condition [backport 3.17] #15049
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
## Description We had a potential (and reported to happen to a client) race condition where the `self.endpoints` list in `internal/endpoints.py` could change size during iteration (modified by a thread), causing an exception. This fixes it by using a tuple copy of the iterated list and adds regression tests. Thanks Adria Ardilla for reporting and suggesting the fix. --------- Signed-off-by: Juanjo Alvarez <[email protected]> (cherry picked from commit ae5562f) Signed-off-by: Juanjo Alvarez <[email protected]>
|
|
e1469a6 to
895e815
Compare
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 246 ± 4 ms. The average import time from base is: 249 ± 5 ms. The import time difference between this PR and base is: -3.0 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate backport-15018-to-3.17 (de1d8da) with baseline 3.17 (36f58bc) 📈 Performance Regressions (2 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.407µs (SLO: <10.000µs 📉 -95.9%) vs baseline: -0.5% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ add_inplace_aspectTime: ✅ 0.407µs (SLO: <10.000µs 📉 -95.9%) vs baseline: -0.8% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% ✅ add_inplace_noaspectTime: ✅ 0.319µs (SLO: <10.000µs 📉 -96.8%) vs baseline: +0.6% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.1% ✅ add_noaspectTime: ✅ 0.277µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -0.1% Memory: ✅ 37.867MB (SLO: <39.000MB -2.9%) vs baseline: +4.6% ✅ bytearray_aspectTime: ✅ 1.321µs (SLO: <10.000µs 📉 -86.8%) vs baseline: -0.2% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +5.5% ✅ bytearray_extend_aspectTime: ✅ 1.539µs (SLO: <10.000µs 📉 -84.6%) vs baseline: +0.2% Memory: ✅ 37.808MB (SLO: <39.000MB -3.1%) vs baseline: +4.0% ✅ bytearray_extend_noaspectTime: ✅ 0.610µs (SLO: <10.000µs 📉 -93.9%) vs baseline: -0.5% Memory: ✅ 37.867MB (SLO: <39.000MB -2.9%) vs baseline: +4.4% ✅ bytearray_noaspectTime: ✅ 0.482µs (SLO: <10.000µs 📉 -95.2%) vs baseline: +0.3% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +3.5% ✅ bytes_aspectTime: ✅ 1.449µs (SLO: <10.000µs 📉 -85.5%) vs baseline: 📈 +13.4% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.7% ✅ bytes_noaspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -1.4% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ bytesio_aspectTime: ✅ 1.328µs (SLO: <10.000µs 📉 -86.7%) vs baseline: +0.8% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.4% ✅ bytesio_noaspectTime: ✅ 0.501µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +1.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ capitalize_aspectTime: ✅ 0.734µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -0.7% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +5.0% ✅ capitalize_noaspectTime: ✅ 0.439µs (SLO: <10.000µs 📉 -95.6%) vs baseline: +0.9% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +3.9% ✅ casefold_aspectTime: ✅ 0.735µs (SLO: <10.000µs 📉 -92.6%) vs baseline: -0.2% Memory: ✅ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.6% ✅ casefold_noaspectTime: ✅ 0.373µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +0.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.4% ✅ decode_aspectTime: ✅ 0.732µs (SLO: <10.000µs 📉 -92.7%) vs baseline: +0.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +3.8% ✅ decode_noaspectTime: ✅ 0.420µs (SLO: <10.000µs 📉 -95.8%) vs baseline: -0.2% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ encode_aspectTime: ✅ 0.711µs (SLO: <10.000µs 📉 -92.9%) vs baseline: +0.1% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +3.9% ✅ encode_noaspectTime: ✅ 0.400µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.9% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ format_aspectTime: ✅ 3.571µs (SLO: <10.000µs 📉 -64.3%) vs baseline: +6.1% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +3.5% ✅ format_map_aspectTime: ✅ 3.978µs (SLO: <10.000µs 📉 -60.2%) vs baseline: 📈 +11.2% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ format_map_noaspectTime: ✅ 0.772µs (SLO: <10.000µs 📉 -92.3%) vs baseline: -0.9% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +3.6% ✅ format_noaspectTime: ✅ 0.594µs (SLO: <10.000µs 📉 -94.1%) vs baseline: +0.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ index_aspectTime: ✅ 0.357µs (SLO: <10.000µs 📉 -96.4%) vs baseline: +0.2% Memory: ✅ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.1% ✅ index_noaspectTime: ✅ 0.278µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.4% ✅ join_aspectTime: ✅ 1.328µs (SLO: <10.000µs 📉 -86.7%) vs baseline: -0.7% Memory: ✅ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ join_noaspectTime: ✅ 0.498µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +0.9% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.4% ✅ ljust_aspectTime: ✅ 2.629µs (SLO: <20.000µs 📉 -86.9%) vs baseline: -0.3% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.7% ✅ ljust_noaspectTime: ✅ 0.403µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -1.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ lower_aspectTime: ✅ 2.262µs (SLO: <10.000µs 📉 -77.4%) vs baseline: +0.4% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8% ✅ lower_noaspectTime: ✅ 0.369µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.8% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.5% ✅ lstrip_aspectTime: ✅ 2.227µs (SLO: <20.000µs 📉 -88.9%) vs baseline: +0.7% Memory: ✅ 37.827MB (SLO: <39.000MB -3.0%) vs baseline: +4.4% ✅ lstrip_noaspectTime: ✅ 0.387µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +0.2% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.3% ✅ modulo_aspectTime: ✅ 1.009µs (SLO: <10.000µs 📉 -89.9%) vs baseline: +0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +3.7% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.534µs (SLO: <10.000µs 📉 -84.7%) vs baseline: -0.2% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.3% ✅ modulo_aspect_for_bytesTime: ✅ 0.984µs (SLO: <10.000µs 📉 -90.2%) vs baseline: ~same Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.198µs (SLO: <10.000µs 📉 -88.0%) vs baseline: -0.1% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +5.3% ✅ modulo_noaspectTime: ✅ 0.633µs (SLO: <10.000µs 📉 -93.7%) vs baseline: +0.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ replace_aspectTime: ✅ 4.848µs (SLO: <10.000µs 📉 -51.5%) vs baseline: +0.2% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +5.9% ✅ replace_noaspectTime: ✅ 0.463µs (SLO: <10.000µs 📉 -95.4%) vs baseline: -0.1% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ repr_aspectTime: ✅ 0.910µs (SLO: <10.000µs 📉 -90.9%) vs baseline: -0.2% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8% ✅ repr_noaspectTime: ✅ 0.421µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +1.3% Memory: ✅ 37.749MB (SLO: <39.000MB -3.2%) vs baseline: +4.1% ✅ rstrip_aspectTime: ✅ 1.932µs (SLO: <20.000µs 📉 -90.3%) vs baseline: +0.5% Memory: ✅ 37.867MB (SLO: <39.000MB -2.9%) vs baseline: +4.3% ✅ rstrip_noaspectTime: ✅ 0.382µs (SLO: <10.000µs 📉 -96.2%) vs baseline: +0.6% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ slice_aspectTime: ✅ 0.497µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +0.3% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.7% ✅ slice_noaspectTime: ✅ 0.448µs (SLO: <10.000µs 📉 -95.5%) vs baseline: +0.4% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.6% ✅ stringio_aspectTime: ✅ 1.561µs (SLO: <10.000µs 📉 -84.4%) vs baseline: +0.5% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +5.8% ✅ stringio_noaspectTime: ✅ 0.720µs (SLO: <10.000µs 📉 -92.8%) vs baseline: -0.5% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ strip_aspectTime: ✅ 2.483µs (SLO: <20.000µs 📉 -87.6%) vs baseline: 📈 +12.7% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.1% ✅ strip_noaspectTime: ✅ 0.388µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +1.0% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.5% ✅ swapcase_aspectTime: ✅ 2.488µs (SLO: <10.000µs 📉 -75.1%) vs baseline: +1.2% Memory: ✅ 38.004MB (SLO: <39.000MB -2.6%) vs baseline: +5.5% ✅ swapcase_noaspectTime: ✅ 0.537µs (SLO: <10.000µs 📉 -94.6%) vs baseline: ~same Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.7% ✅ title_aspectTime: ✅ 2.404µs (SLO: <10.000µs 📉 -76.0%) vs baseline: -1.0% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +5.0% ✅ title_noaspectTime: ✅ 0.503µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -0.7% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.4% ✅ translate_aspectTime: ✅ 3.282µs (SLO: <10.000µs 📉 -67.2%) vs baseline: +0.1% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.8% ✅ translate_noaspectTime: ✅ 1.043µs (SLO: <10.000µs 📉 -89.6%) vs baseline: ~same Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +3.6% ✅ upper_aspectTime: ✅ 2.477µs (SLO: <10.000µs 📉 -75.2%) vs baseline: +9.4% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ upper_noaspectTime: ✅ 0.368µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.4% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.3% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 4.367µs (SLO: <10.000µs 📉 -56.3%) vs baseline: +2.1% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathbasename_noaspectTime: ✅ 1.082µs (SLO: <10.000µs 📉 -89.2%) vs baseline: -0.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathjoin_aspectTime: ✅ 6.231µs (SLO: <10.000µs 📉 -37.7%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +5.0% ✅ ospathjoin_noaspectTime: ✅ 2.289µs (SLO: <10.000µs 📉 -77.1%) vs baseline: -0.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ ospathnormcase_aspectTime: ✅ 3.585µs (SLO: <10.000µs 📉 -64.1%) vs baseline: +0.2% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathnormcase_noaspectTime: ✅ 0.574µs (SLO: <10.000µs 📉 -94.3%) vs baseline: +0.5% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathsplit_aspectTime: ✅ 4.978µs (SLO: <10.000µs 📉 -50.2%) vs baseline: +0.5% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathsplit_noaspectTime: ✅ 1.585µs (SLO: <10.000µs 📉 -84.2%) vs baseline: -0.3% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ ospathsplitdrive_aspectTime: ✅ 3.763µs (SLO: <10.000µs 📉 -62.4%) vs baseline: -0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ ospathsplitdrive_noaspectTime: ✅ 0.699µs (SLO: <10.000µs 📉 -93.0%) vs baseline: -0.6% Memory: ✅ 37.591MB (SLO: <39.000MB -3.6%) vs baseline: +4.5% ✅ ospathsplitext_aspectTime: ✅ 5.257µs (SLO: <10.000µs 📉 -47.4%) vs baseline: 📈 +14.7% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ ospathsplitext_noaspectTime: ✅ 1.388µs (SLO: <10.000µs 📉 -86.1%) vs baseline: ~same Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.452ms (SLO: <22.300ms -8.3%) vs baseline: -0.2% Memory: ✅ 65.442MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.346ms (SLO: <1.450ms -7.2%) vs baseline: ~same Memory: ✅ 64.535MB (SLO: <67.000MB -3.7%) vs baseline: +4.9% ✅ iastTime: ✅ 20.464ms (SLO: <22.250ms -8.0%) vs baseline: -0.2% Memory: ✅ 65.425MB (SLO: <67.000MB -2.4%) vs baseline: +4.7% ✅ profilerTime: ✅ 15.232ms (SLO: <16.550ms -8.0%) vs baseline: -0.3% Memory: ✅ 53.846MB (SLO: <54.500MB 🟡 -1.2%) vs baseline: +5.0% ✅ resource-renamingTime: ✅ 20.542ms (SLO: <21.750ms -5.6%) vs baseline: +0.3% Memory: ✅ 65.465MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 25.314ms (SLO: <28.200ms 📉 -10.2%) vs baseline: -0.6% Memory: ✅ 67.940MB (SLO: <69.500MB -2.2%) vs baseline: +5.0% ✅ tracerTime: ✅ 20.402ms (SLO: <21.750ms -6.2%) vs baseline: -0.2% Memory: ✅ 65.452MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 22.001ms (SLO: <23.500ms -6.4%) vs baseline: ~same Memory: ✅ 66.518MB (SLO: <67.500MB 🟡 -1.5%) vs baseline: +4.6% ✅ tracer-dont-create-db-spansTime: ✅ 19.268ms (SLO: <21.500ms 📉 -10.4%) vs baseline: ~same Memory: ✅ 65.466MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +5.0% ✅ tracer-minimalTime: ✅ 16.578ms (SLO: <17.500ms -5.3%) vs baseline: ~same Memory: ✅ 65.486MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 20.488ms (SLO: <21.750ms -5.8%) vs baseline: -0.1% Memory: ✅ 71.378MB (SLO: <72.500MB 🟡 -1.5%) vs baseline: +4.8% ✅ tracer-no-cachesTime: ✅ 18.402ms (SLO: <19.650ms -6.4%) vs baseline: -0.3% Memory: ✅ 65.412MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ tracer-no-databasesTime: ✅ 18.727ms (SLO: <20.100ms -6.8%) vs baseline: +0.2% Memory: ✅ 65.255MB (SLO: <67.000MB -2.6%) vs baseline: +4.6% ✅ tracer-no-middlewareTime: ✅ 20.113ms (SLO: <21.500ms -6.4%) vs baseline: -0.2% Memory: ✅ 65.409MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.326ms (SLO: <22.000ms -7.6%) vs baseline: +0.3% Memory: ✅ 65.495MB (SLO: <67.000MB -2.2%) vs baseline: +4.8% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.117ms (SLO: <19.850ms -8.7%) vs baseline: +1.0% Memory: ✅ 65.213MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ errortracking-enabled-userTime: ✅ 17.994ms (SLO: <19.400ms -7.2%) vs baseline: -0.1% Memory: ✅ 65.274MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 18.237ms (SLO: <19.450ms -6.2%) vs baseline: +1.3% Memory: ✅ 65.294MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.0% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.580ms (SLO: <4.750ms -3.6%) vs baseline: ~same Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.610ms (SLO: <6.750ms -2.1%) vs baseline: +0.4% Memory: ✅ 61.971MB (SLO: <65.000MB -4.7%) vs baseline: +4.8% ✅ appsec-telemetryTime: ✅ 4.587ms (SLO: <4.750ms -3.4%) vs baseline: +0.2% Memory: ✅ 61.912MB (SLO: <65.000MB -4.8%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.857ms (SLO: <2.000ms -7.1%) vs baseline: ~same Memory: ✅ 45.318MB (SLO: <47.000MB -3.6%) vs baseline: +4.7% ✅ iast-getTime: ✅ 1.861ms (SLO: <2.000ms -7.0%) vs baseline: +0.2% Memory: ✅ 42.369MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +4.7% ✅ profilerTime: ✅ 1.909ms (SLO: <2.100ms -9.1%) vs baseline: -0.3% Memory: ✅ 46.478MB (SLO: <47.000MB 🟡 -1.1%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.369ms (SLO: <3.650ms -7.7%) vs baseline: -0.2% Memory: ✅ 52.081MB (SLO: <53.500MB -2.7%) vs baseline: +4.5% ✅ tracerTime: ✅ 3.361ms (SLO: <3.650ms -7.9%) vs baseline: ~same Memory: ✅ 52.199MB (SLO: <53.500MB -2.4%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 3.357ms (SLO: <3.650ms -8.0%) vs baseline: +0.1% Memory: ✅ 58.286MB (SLO: <60.000MB -2.9%) vs baseline: +4.7% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 2.948µs (SLO: <20.000µs 📉 -85.3%) vs baseline: -1.9% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-count-metrics-100-timesTime: ✅ 203.005µs (SLO: <220.000µs -7.7%) vs baseline: -1.8% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-distribution-metric-1-timesTime: ✅ 3.378µs (SLO: <20.000µs 📉 -83.1%) vs baseline: -0.6% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.9% ✅ 1-distribution-metrics-100-timesTime: ✅ 217.884µs (SLO: <220.000µs 🟡 -1.0%) vs baseline: -1.9% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-gauge-metric-1-timesTime: ✅ 2.281µs (SLO: <20.000µs 📉 -88.6%) vs baseline: +4.0% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +5.0% ✅ 1-gauge-metrics-100-timesTime: ✅ 138.926µs (SLO: <150.000µs -7.4%) vs baseline: +0.5% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.9% ✅ 1-rate-metric-1-timesTime: ✅ 3.122µs (SLO: <20.000µs 📉 -84.4%) vs baseline: ~same Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.1% ✅ 1-rate-metrics-100-timesTime: ✅ 218.274µs (SLO: <250.000µs 📉 -12.7%) vs baseline: -1.0% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 100-count-metrics-100-timesTime: ✅ 20.730ms (SLO: <22.000ms -5.8%) vs baseline: +1.2% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.9% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.292ms (SLO: <2.300ms 🟡 -0.4%) vs baseline: +1.7% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.8% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.437ms (SLO: <1.550ms -7.3%) vs baseline: +1.2% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 100-rate-metrics-100-timesTime: ✅ 2.258ms (SLO: <2.550ms 📉 -11.5%) vs baseline: +1.8% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.6% ✅ flush-1-metricTime: ✅ 4.490µs (SLO: <20.000µs 📉 -77.5%) vs baseline: +0.6% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.0% ✅ flush-100-metricsTime: ✅ 174.287µs (SLO: <250.000µs 📉 -30.3%) vs baseline: -0.2% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ flush-1000-metricsTime: ✅ 2.121ms (SLO: <2.500ms 📉 -15.2%) vs baseline: -0.9% Memory: ✅ 32.971MB (SLO: <34.500MB -4.4%) vs baseline: +5.0%
|
Backport ae5562f from #15018 to 3.17.
Description
We had a potential (and reported to happen to a client) race condition where the
self.endpointslist ininternal/endpoints.pycould change size during iteration (modified by a thread), causing an exception.This fixes it by using a tuple copy of the iterated list and adds regression tests.
Thanks Adria Ardilla for reporting and suggesting the fix.