-
Notifications
You must be signed in to change notification settings - Fork 461
fix: cleanup_loaded_modules: dont clean up modules that have not finished loading #14840
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
…loading Signed-off-by: Juanjo Alvarez <[email protected]>
Signed-off-by: Juanjo Alvarez <[email protected]>
|
Signed-off-by: Juanjo Alvarez <[email protected]>
Signed-off-by: Juanjo Alvarez <[email protected]>
Signed-off-by: Juanjo Alvarez <[email protected]>
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 243 ± 3 ms. The average import time from base is: 244 ± 3 ms. The import time difference between this PR and base is: -1.7 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate juanjux/pytest-ddtraceauto-gevent-fix (78204ac) with baseline main (b6d846e) ❌ Test Failures (1 suite)❌ span - 25/26✅ add-eventTime: ✅ 20.614ms (SLO: <22.500ms -8.4%) vs baseline: -0.6% Memory: ✅ 50.308MB (SLO: <53.000MB -5.1%) vs baseline: +4.7% ✅ add-metricsTime: ✅ 90.906ms (SLO: <93.500ms -2.8%) vs baseline: -0.9% Memory: ✅ 661.217MB (SLO: <961.000MB 📉 -31.2%) vs baseline: +4.8% ✅ add-tagsTime: ✅ 149.503ms (SLO: <155.000ms -3.5%) vs baseline: +0.5% Memory: ✅ 661.412MB (SLO: <962.500MB 📉 -31.3%) vs baseline: +4.8% ✅ get-contextTime: ✅ 19.783ms (SLO: <20.500ms -3.5%) vs baseline: +2.3% Memory: ✅ 49.222MB (SLO: <53.000MB -7.1%) vs baseline: +4.8% ✅ is-recordingTime: ✅ 19.403ms (SLO: <20.500ms -5.4%) vs baseline: -0.1% Memory: ✅ 49.202MB (SLO: <53.000MB -7.2%) vs baseline: +5.1% ✅ record-exceptionTime: ✅ 39.243ms (SLO: <40.000ms 🟡 -1.9%) vs baseline: +2.9% Memory: ✅ 42.713MB (SLO: <53.000MB 📉 -19.4%) vs baseline: +4.6% ✅ set-statusTime: ✅ 21.563ms (SLO: <22.000ms 🟡 -2.0%) vs baseline: +1.3% Memory: ✅ 49.157MB (SLO: <53.000MB -7.3%) vs baseline: +5.0% ✅ startTime: ✅ 19.603ms (SLO: <20.500ms -4.4%) vs baseline: +2.6% Memory: ✅ 49.195MB (SLO: <53.000MB -7.2%) vs baseline: +4.9% ✅ start-finishTime: ✅ 51.653ms (SLO: <52.500ms 🟡 -1.6%) vs baseline: +0.3% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ start-finish-telemetryTime: ✅ 53.474ms (SLO: <54.500ms 🟡 -1.9%) vs baseline: +1.4% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ❌ start-finish-traceid128Time: ❌ 56.270ms (SLO: <56.000ms +0.5%) vs baseline: +2.7% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.7% ✅ start-traceid128Time: ✅ 19.720ms (SLO: <22.500ms 📉 -12.4%) vs baseline: +0.3% Memory: ✅ 49.155MB (SLO: <53.000MB -7.3%) vs baseline: +4.9% ✅ update-nameTime: ✅ 20.261ms (SLO: <22.000ms -7.9%) vs baseline: ~same Memory: ✅ 49.789MB (SLO: <53.000MB -6.1%) vs baseline: +4.9% 📈 Performance Regressions (1 suite)📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 4.298µs (SLO: <10.000µs 📉 -57.0%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ ospathbasename_noaspectTime: ✅ 1.088µs (SLO: <10.000µs 📉 -89.1%) vs baseline: ~same Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ ospathjoin_aspectTime: ✅ 6.120µs (SLO: <10.000µs 📉 -38.8%) vs baseline: -0.3% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathjoin_noaspectTime: ✅ 2.288µs (SLO: <10.000µs 📉 -77.1%) vs baseline: +0.1% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ ospathnormcase_aspectTime: ✅ 3.494µs (SLO: <10.000µs 📉 -65.1%) vs baseline: +0.7% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ ospathnormcase_noaspectTime: ✅ 0.569µs (SLO: <10.000µs 📉 -94.3%) vs baseline: -0.1% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ ospathsplit_aspectTime: ✅ 4.893µs (SLO: <10.000µs 📉 -51.1%) vs baseline: +0.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ ospathsplit_noaspectTime: ✅ 1.600µs (SLO: <10.000µs 📉 -84.0%) vs baseline: +0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathsplitdrive_aspectTime: ✅ 3.700µs (SLO: <10.000µs 📉 -63.0%) vs baseline: +2.0% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ ospathsplitdrive_noaspectTime: ✅ 0.703µs (SLO: <10.000µs 📉 -93.0%) vs baseline: +0.5% Memory: ✅ 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9% ✅ ospathsplitext_aspectTime: ✅ 5.285µs (SLO: <10.000µs 📉 -47.2%) vs baseline: 📈 +15.7% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ ospathsplitext_noaspectTime: ✅ 1.403µs (SLO: <10.000µs 📉 -86.0%) vs baseline: +1.4% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.460ms (SLO: <22.300ms -8.2%) vs baseline: ~same Memory: ✅ 65.473MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.344ms (SLO: <1.450ms -7.3%) vs baseline: -0.4% Memory: ✅ 64.630MB (SLO: <67.000MB -3.5%) vs baseline: +5.0% ✅ iastTime: ✅ 20.414ms (SLO: <22.250ms -8.3%) vs baseline: -0.4% Memory: ✅ 65.524MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.246ms (SLO: <16.550ms -7.9%) vs baseline: -0.1% Memory: ✅ 53.674MB (SLO: <54.500MB 🟡 -1.5%) vs baseline: +4.6% ✅ resource-renamingTime: ✅ 20.587ms (SLO: <21.750ms -5.3%) vs baseline: +0.2% Memory: ✅ 65.511MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ span-code-originTime: ✅ 26.143ms (SLO: <28.200ms -7.3%) vs baseline: ~same Memory: ✅ 67.602MB (SLO: <69.500MB -2.7%) vs baseline: +4.7% ✅ tracerTime: ✅ 20.544ms (SLO: <21.750ms -5.5%) vs baseline: +0.3% Memory: ✅ 65.507MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ tracer-and-profilerTime: ✅ 22.041ms (SLO: <23.500ms -6.2%) vs baseline: ~same Memory: ✅ 66.636MB (SLO: <67.500MB 🟡 -1.3%) vs baseline: +5.0% ✅ tracer-dont-create-db-spansTime: ✅ 19.346ms (SLO: <21.500ms 📉 -10.0%) vs baseline: ~same Memory: ✅ 65.433MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.609ms (SLO: <17.500ms -5.1%) vs baseline: +0.2% Memory: ✅ 65.386MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 20.516ms (SLO: <21.750ms -5.7%) vs baseline: ~same Memory: ✅ 71.521MB (SLO: <72.500MB 🟡 -1.4%) vs baseline: +5.1% ✅ tracer-no-cachesTime: ✅ 18.386ms (SLO: <19.650ms -6.4%) vs baseline: -0.3% Memory: ✅ 65.517MB (SLO: <67.000MB -2.2%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 18.805ms (SLO: <20.100ms -6.4%) vs baseline: +0.1% Memory: ✅ 64.996MB (SLO: <67.000MB -3.0%) vs baseline: +4.1% ✅ tracer-no-middlewareTime: ✅ 20.185ms (SLO: <21.500ms -6.1%) vs baseline: ~same Memory: ✅ 65.440MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.286ms (SLO: <22.000ms -7.8%) vs baseline: ~same Memory: ✅ 65.465MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.045ms (SLO: <19.850ms -9.1%) vs baseline: +0.2% Memory: ✅ 65.176MB (SLO: <66.500MB 🟡 -2.0%) vs baseline: +4.7% ✅ errortracking-enabled-userTime: ✅ 17.997ms (SLO: <19.400ms -7.2%) vs baseline: -0.7% Memory: ✅ 65.215MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 18.160ms (SLO: <19.450ms -6.6%) vs baseline: +0.6% Memory: ✅ 65.274MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.9% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.566ms (SLO: <4.750ms -3.9%) vs baseline: -0.3% Memory: ✅ 62.030MB (SLO: <65.000MB -4.6%) vs baseline: +5.0% ✅ appsec-postTime: ✅ 6.557ms (SLO: <6.750ms -2.9%) vs baseline: -0.1% Memory: ✅ 61.932MB (SLO: <65.000MB -4.7%) vs baseline: +4.9% ✅ appsec-telemetryTime: ✅ 4.568ms (SLO: <4.750ms -3.8%) vs baseline: -0.2% Memory: ✅ 61.971MB (SLO: <65.000MB -4.7%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.856ms (SLO: <2.000ms -7.2%) vs baseline: -0.3% Memory: ✅ 45.397MB (SLO: <47.000MB -3.4%) vs baseline: +4.8% ✅ iast-getTime: ✅ 1.858ms (SLO: <2.000ms -7.1%) vs baseline: ~same Memory: ✅ 42.369MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +5.0% ✅ profilerTime: ✅ 1.905ms (SLO: <2.100ms -9.3%) vs baseline: ~same Memory: ✅ 46.478MB (SLO: <47.000MB 🟡 -1.1%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 3.375ms (SLO: <3.650ms -7.5%) vs baseline: +0.2% Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.8% ✅ tracerTime: ✅ 3.365ms (SLO: <3.650ms -7.8%) vs baseline: -0.1% Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 3.363ms (SLO: <3.650ms -7.9%) vs baseline: -0.2% Memory: ✅ 58.304MB (SLO: <60.000MB -2.8%) vs baseline: +5.0% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 42.410ms (SLO: <47.150ms 📉 -10.1%) vs baseline: +0.2% Memory: ✅ 44.443MB (SLO: <47.000MB -5.4%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 316.395ms (SLO: <344.800ms -8.2%) vs baseline: ~same Memory: ✅ 595.423MB (SLO: <600.000MB 🟡 -0.8%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 286.850ms (SLO: <314.000ms -8.6%) vs baseline: +0.4% Memory: ✅ 596.427MB (SLO: <600.000MB 🟡 -0.6%) vs baseline: +4.8% ✅ get-contextTime: ✅ 80.486ms (SLO: <92.350ms 📉 -12.8%) vs baseline: ~same Memory: ✅ 39.968MB (SLO: <46.500MB 📉 -14.0%) vs baseline: +4.9% ✅ is-recordingTime: ✅ 38.886ms (SLO: <44.500ms 📉 -12.6%) vs baseline: -0.2% Memory: ✅ 43.938MB (SLO: <47.500MB -7.5%) vs baseline: +4.8% ✅ record-exceptionTime: ✅ 58.790ms (SLO: <67.650ms 📉 -13.1%) vs baseline: ~same Memory: ✅ 40.131MB (SLO: <47.000MB 📉 -14.6%) vs baseline: +4.4% ✅ set-statusTime: ✅ 44.845ms (SLO: <50.400ms 📉 -11.0%) vs baseline: +0.4% Memory: ✅ 43.935MB (SLO: <47.000MB -6.5%) vs baseline: +4.8% ✅ startTime: ✅ 38.146ms (SLO: <43.450ms 📉 -12.2%) vs baseline: +0.1% Memory: ✅ 43.924MB (SLO: <47.000MB -6.5%) vs baseline: +4.8% ✅ start-finishTime: ✅ 82.873ms (SLO: <88.000ms -5.8%) vs baseline: +0.2% Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +5.0% ✅ start-finish-telemetryTime: ✅ 84.205ms (SLO: <89.000ms -5.4%) vs baseline: -0.2% Memory: ✅ 34.544MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.7% ✅ update-nameTime: ✅ 40.217ms (SLO: <45.150ms 📉 -10.9%) vs baseline: +0.2% Memory: ✅ 44.245MB (SLO: <47.000MB -5.9%) vs baseline: +5.0%
|
Signed-off-by: Juanjo Alvarez <[email protected]>
Signed-off-by: Juanjo Alvarez <[email protected]>
Description
Sometimes, when pytest imported a module that used
import ddtrace.auto
and gevent was installed, the module would be deleted from the cache too soon, producing aKeyError
. This fixes the problem ensuring we don't delete unloaded modules from the cache.Testing
Risks
Additional Notes