-
Notifications
You must be signed in to change notification settings - Fork 467
fix(internal): fix for potential race condition [backport 3.15] #15047
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 <juanjo.alvarezmartinez@datadoghq.com> (cherry picked from commit ae5562f) Signed-off-by: Juanjo Alvarez <juanjo.alvarezmartinez@datadoghq.com>
|
|
cea395b to
aad84f9
Compare
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 268 ± 2 ms. The average import time from base is: 272 ± 3 ms. The import time difference between this PR and base is: -3.9 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate backport-15018-to-3.15 (373be81) with baseline 3.15 (5a5365e) 📈 Performance Regressions (2 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.403µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ add_inplace_aspectTime: ✅ 0.408µs (SLO: <10.000µs 📉 -95.9%) vs baseline: -0.8% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ add_inplace_noaspectTime: ✅ 0.318µs (SLO: <10.000µs 📉 -96.8%) vs baseline: +1.6% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ add_noaspectTime: ✅ 0.278µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +0.6% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.7% ✅ bytearray_aspectTime: ✅ 1.344µs (SLO: <10.000µs 📉 -86.6%) vs baseline: -0.8% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ bytearray_extend_aspectTime: ✅ 1.461µs (SLO: <10.000µs 📉 -85.4%) vs baseline: +1.7% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.7% ✅ bytearray_extend_noaspectTime: ✅ 0.612µs (SLO: <10.000µs 📉 -93.9%) vs baseline: +0.8% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ bytearray_noaspectTime: ✅ 0.480µs (SLO: <10.000µs 📉 -95.2%) vs baseline: -0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ bytes_aspectTime: ✅ 1.320µs (SLO: <10.000µs 📉 -86.8%) vs baseline: +1.7% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ bytes_noaspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: +0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ bytesio_aspectTime: ✅ 1.339µs (SLO: <10.000µs 📉 -86.6%) vs baseline: +1.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.2% ✅ bytesio_noaspectTime: ✅ 0.498µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +0.6% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ capitalize_aspectTime: ✅ 0.745µs (SLO: <10.000µs 📉 -92.5%) vs baseline: +2.0% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ capitalize_noaspectTime: ✅ 0.436µs (SLO: <10.000µs 📉 -95.6%) vs baseline: +1.4% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ casefold_aspectTime: ✅ 0.737µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +1.1% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ casefold_noaspectTime: ✅ 0.369µs (SLO: <10.000µs 📉 -96.3%) vs baseline: ~same Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ decode_aspectTime: ✅ 0.719µs (SLO: <10.000µs 📉 -92.8%) vs baseline: -0.4% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.6% ✅ decode_noaspectTime: ✅ 0.422µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +1.3% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ encode_aspectTime: ✅ 0.711µs (SLO: <10.000µs 📉 -92.9%) vs baseline: +0.2% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ encode_noaspectTime: ✅ 0.403µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.7% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ format_aspectTime: ✅ 3.385µs (SLO: <10.000µs 📉 -66.1%) vs baseline: -0.9% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ format_map_aspectTime: ✅ 3.639µs (SLO: <10.000µs 📉 -63.6%) vs baseline: +0.2% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ format_map_noaspectTime: ✅ 0.775µs (SLO: <10.000µs 📉 -92.3%) vs baseline: -0.8% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ format_noaspectTime: ✅ 0.594µs (SLO: <10.000µs 📉 -94.1%) vs baseline: -0.2% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ index_aspectTime: ✅ 0.357µs (SLO: <10.000µs 📉 -96.4%) vs baseline: +1.1% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ index_noaspectTime: ✅ 0.275µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -0.4% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ join_aspectTime: ✅ 1.364µs (SLO: <10.000µs 📉 -86.4%) vs baseline: +0.1% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ join_noaspectTime: ✅ 0.489µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -1.5% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ ljust_aspectTime: ✅ 2.590µs (SLO: <20.000µs 📉 -87.1%) vs baseline: +0.3% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ ljust_noaspectTime: ✅ 0.405µs (SLO: <10.000µs 📉 -96.0%) vs baseline: +1.0% Memory: ✅ 37.591MB (SLO: <39.000MB -3.6%) vs baseline: +4.6% ✅ lower_aspectTime: ✅ 2.342µs (SLO: <10.000µs 📉 -76.6%) vs baseline: +5.8% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ lower_noaspectTime: ✅ 0.364µs (SLO: <10.000µs 📉 -96.4%) vs baseline: -2.2% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ lstrip_aspectTime: ✅ 2.258µs (SLO: <20.000µs 📉 -88.7%) vs baseline: +0.6% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.2% ✅ lstrip_noaspectTime: ✅ 0.386µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +1.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ modulo_aspectTime: ✅ 0.992µs (SLO: <10.000µs 📉 -90.1%) vs baseline: +0.7% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.529µs (SLO: <10.000µs 📉 -84.7%) vs baseline: -0.2% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ modulo_aspect_for_bytesTime: ✅ 0.983µs (SLO: <10.000µs 📉 -90.2%) vs baseline: +1.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.199µs (SLO: <10.000µs 📉 -88.0%) vs baseline: -0.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ modulo_noaspectTime: ✅ 0.628µs (SLO: <10.000µs 📉 -93.7%) vs baseline: +0.5% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ replace_aspectTime: ✅ 4.899µs (SLO: <10.000µs 📉 -51.0%) vs baseline: +0.7% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ replace_noaspectTime: ✅ 0.464µs (SLO: <10.000µs 📉 -95.4%) vs baseline: ~same Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ repr_aspectTime: ✅ 0.905µs (SLO: <10.000µs 📉 -91.0%) vs baseline: -0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ repr_noaspectTime: ✅ 0.417µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +0.1% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ rstrip_aspectTime: ✅ 1.963µs (SLO: <20.000µs 📉 -90.2%) vs baseline: +1.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ rstrip_noaspectTime: ✅ 0.373µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -1.0% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ slice_aspectTime: ✅ 0.495µs (SLO: <10.000µs 📉 -95.1%) vs baseline: +0.2% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ slice_noaspectTime: ✅ 0.445µs (SLO: <10.000µs 📉 -95.6%) vs baseline: -0.1% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ stringio_aspectTime: ✅ 1.551µs (SLO: <10.000µs 📉 -84.5%) vs baseline: +0.4% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.8% ✅ stringio_noaspectTime: ✅ 0.718µs (SLO: <10.000µs 📉 -92.8%) vs baseline: +0.5% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ strip_aspectTime: ✅ 2.605µs (SLO: <20.000µs 📉 -87.0%) vs baseline: 📈 +16.0% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ strip_noaspectTime: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%) vs baseline: ~same Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.5% ✅ swapcase_aspectTime: ✅ 2.430µs (SLO: <10.000µs 📉 -75.7%) vs baseline: +0.8% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ swapcase_noaspectTime: ✅ 0.535µs (SLO: <10.000µs 📉 -94.7%) vs baseline: +0.5% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.7% ✅ title_aspectTime: ✅ 2.417µs (SLO: <10.000µs 📉 -75.8%) vs baseline: +3.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ title_noaspectTime: ✅ 0.499µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -1.1% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ translate_aspectTime: ✅ 3.248µs (SLO: <10.000µs 📉 -67.5%) vs baseline: +0.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6% ✅ translate_noaspectTime: ✅ 1.037µs (SLO: <10.000µs 📉 -89.6%) vs baseline: +0.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ upper_aspectTime: ✅ 2.332µs (SLO: <10.000µs 📉 -76.7%) vs baseline: +5.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ upper_noaspectTime: ✅ 0.373µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +1.2% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.477µs (SLO: <20.000µs 📉 -82.6%) vs baseline: 📈 +10.5% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.9% ✅ 1-count-metrics-100-timesTime: ✅ 213.532µs (SLO: <250.000µs 📉 -14.6%) vs baseline: +0.6% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.2% ✅ 1-distribution-metric-1-timesTime: ✅ 3.297µs (SLO: <20.000µs 📉 -83.5%) vs baseline: 📈 +11.8% Memory: ✅ 32.008MB (SLO: <34.000MB -5.9%) vs baseline: +4.5% ✅ 1-distribution-metrics-100-timesTime: ✅ 192.960µs (SLO: <220.000µs 📉 -12.3%) vs baseline: +1.3% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +5.0% ✅ 1-gauge-metric-1-timesTime: ✅ 2.417µs (SLO: <20.000µs 📉 -87.9%) vs baseline: 📈 +12.2% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +5.1% ✅ 1-gauge-metrics-100-timesTime: ✅ 125.119µs (SLO: <150.000µs 📉 -16.6%) vs baseline: +0.6% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +5.0% ✅ 1-rate-metric-1-timesTime: ✅ 3.541µs (SLO: <20.000µs 📉 -82.3%) vs baseline: 📈 +13.1% Memory: ✅ 31.988MB (SLO: <34.000MB -5.9%) vs baseline: +4.7% ✅ 1-rate-metrics-100-timesTime: ✅ 212.566µs (SLO: <250.000µs 📉 -15.0%) vs baseline: +0.1% Memory: ✅ 32.047MB (SLO: <34.000MB -5.7%) vs baseline: +4.9% ✅ 100-count-metrics-100-timesTime: ✅ 21.309ms (SLO: <23.500ms -9.3%) vs baseline: ~same Memory: ✅ 32.047MB (SLO: <34.000MB -5.7%) vs baseline: +4.4% ✅ 100-distribution-metrics-100-timesTime: ✅ 1.982ms (SLO: <2.250ms 📉 -11.9%) vs baseline: -0.2% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +5.0% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.281ms (SLO: <1.550ms 📉 -17.4%) vs baseline: -0.9% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +5.1% ✅ 100-rate-metrics-100-timesTime: ✅ 2.204ms (SLO: <2.550ms 📉 -13.6%) vs baseline: +0.2% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.2% ✅ flush-1-metricTime: ✅ 4.182µs (SLO: <20.000µs 📉 -79.1%) vs baseline: +2.3% Memory: ✅ 32.008MB (SLO: <34.000MB -5.9%) vs baseline: +4.6% ✅ flush-100-metricsTime: ✅ 182.127µs (SLO: <250.000µs 📉 -27.1%) vs baseline: -0.3% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.7% ✅ flush-1000-metricsTime: ✅ 2.202ms (SLO: <2.500ms 📉 -11.9%) vs baseline: +0.5% Memory: ✅ 32.853MB (SLO: <34.500MB -4.8%) vs baseline: +4.9% 🟡 Near SLO Breach (3 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.493ms (SLO: <22.300ms -8.1%) vs baseline: -0.1% Memory: ✅ 65.210MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.352ms (SLO: <1.450ms -6.8%) vs baseline: -0.1% Memory: ✅ 64.202MB (SLO: <67.000MB -4.2%) vs baseline: +4.7% ✅ iastTime: ✅ 20.484ms (SLO: <22.250ms -7.9%) vs baseline: ~same Memory: ✅ 65.212MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ profilerTime: ✅ 15.225ms (SLO: <16.550ms -8.0%) vs baseline: -0.3% Memory: ✅ 53.676MB (SLO: <54.500MB 🟡 -1.5%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 20.535ms (SLO: <21.750ms -5.6%) vs baseline: -0.4% Memory: ✅ 65.221MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 26.138ms (SLO: <28.200ms -7.3%) vs baseline: -0.5% Memory: ✅ 67.392MB (SLO: <69.500MB -3.0%) vs baseline: +5.1% ✅ tracerTime: ✅ 20.549ms (SLO: <21.750ms -5.5%) vs baseline: +0.3% Memory: ✅ 65.172MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 22.213ms (SLO: <23.500ms -5.5%) vs baseline: +0.5% Memory: ✅ 66.388MB (SLO: <67.500MB 🟡 -1.6%) vs baseline: +4.9% ✅ tracer-dont-create-db-spansTime: ✅ 19.379ms (SLO: <21.500ms -9.9%) vs baseline: -0.2% Memory: ✅ 65.249MB (SLO: <66.000MB 🟡 -1.1%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.608ms (SLO: <17.500ms -5.1%) vs baseline: -0.4% Memory: ✅ 64.978MB (SLO: <66.000MB 🟡 -1.5%) vs baseline: +4.4% ✅ tracer-nativeTime: ✅ 20.562ms (SLO: <21.750ms -5.5%) vs baseline: ~same Memory: ✅ 70.950MB (SLO: <72.500MB -2.1%) vs baseline: +4.7% ✅ tracer-no-cachesTime: ✅ 18.513ms (SLO: <19.650ms -5.8%) vs baseline: -0.1% Memory: ✅ 65.286MB (SLO: <67.000MB -2.6%) vs baseline: +4.9% ✅ tracer-no-databasesTime: ✅ 18.851ms (SLO: <20.100ms -6.2%) vs baseline: ~same Memory: ✅ 64.818MB (SLO: <67.000MB -3.3%) vs baseline: +4.8% ✅ tracer-no-middlewareTime: ✅ 20.232ms (SLO: <21.500ms -5.9%) vs baseline: ~same Memory: ✅ 65.251MB (SLO: <67.000MB -2.6%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 20.347ms (SLO: <22.000ms -7.5%) vs baseline: ~same Memory: ✅ 65.233MB (SLO: <67.000MB -2.6%) vs baseline: +4.8% 🟡 flasksqli - 6/6✅ appsec-enabledTime: ✅ 3.950ms (SLO: <4.200ms -6.0%) vs baseline: +0.6% Memory: ✅ 63.383MB (SLO: <66.000MB -4.0%) vs baseline: +5.1% ✅ iast-enabledTime: ✅ 2.456ms (SLO: <2.800ms 📉 -12.3%) vs baseline: +0.3% Memory: ✅ 58.826MB (SLO: <60.000MB 🟡 -2.0%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 2.079ms (SLO: <2.250ms -7.6%) vs baseline: +0.4% Memory: ✅ 51.970MB (SLO: <54.500MB -4.6%) vs baseline: +4.8% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 46.121ms (SLO: <47.150ms -2.2%) vs baseline: +1.9% Memory: ✅ 45.099MB (SLO: <47.000MB -4.0%) vs baseline: +4.7% ✅ add-metricsTime: ✅ 322.274ms (SLO: <344.800ms -6.5%) vs baseline: +0.5% Memory: ✅ 554.050MB (SLO: <562.000MB 🟡 -1.4%) vs baseline: +5.1% ✅ add-tagsTime: ✅ 296.650ms (SLO: <314.000ms -5.5%) vs baseline: +1.8% Memory: ✅ 555.721MB (SLO: <563.500MB 🟡 -1.4%) vs baseline: +5.1% ✅ get-contextTime: ✅ 82.493ms (SLO: <92.350ms 📉 -10.7%) vs baseline: +0.2% Memory: ✅ 40.172MB (SLO: <46.500MB 📉 -13.6%) vs baseline: +4.8% ✅ is-recordingTime: ✅ 42.998ms (SLO: <44.500ms -3.4%) vs baseline: -0.1% Memory: ✅ 44.584MB (SLO: <47.500MB -6.1%) vs baseline: +5.0% ✅ record-exceptionTime: ✅ 63.038ms (SLO: <67.650ms -6.8%) vs baseline: +2.0% Memory: ✅ 40.523MB (SLO: <47.000MB 📉 -13.8%) vs baseline: +5.0% ✅ set-statusTime: ✅ 49.755ms (SLO: <50.400ms 🟡 -1.3%) vs baseline: +2.1% Memory: ✅ 44.502MB (SLO: <47.000MB -5.3%) vs baseline: +4.8% ✅ startTime: ✅ 42.670ms (SLO: <43.450ms 🟡 -1.8%) vs baseline: +1.3% Memory: ✅ 44.541MB (SLO: <47.000MB -5.2%) vs baseline: +4.8% ✅ start-finishTime: ✅ 83.023ms (SLO: <88.000ms -5.7%) vs baseline: -0.5% Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 86.420ms (SLO: <89.000ms -2.9%) vs baseline: +2.4% Memory: ✅ 34.524MB (SLO: <46.500MB 📉 -25.8%) vs baseline: +4.7% ✅ update-nameTime: ✅ 45.065ms (SLO: <45.150ms 🟡 -0.2%) vs baseline: +2.1% Memory: ✅ 44.752MB (SLO: <47.000MB -4.8%) vs baseline: +4.9%
|
Signed-off-by: Juanjo Alvarez <juanjo.alvarezmartinez@datadoghq.com>
82bee51 to
373be81
Compare
|
I don't think this fix is critial enough to backport beyond the current minor version |
|
Closing, CI for this branch is broken and 3.18 is releasing soon so no need for this backport. |
Pull request was closed
Backport ae5562f from #15018 to 3.15.
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.