refactor(appsec): move _stacktrace from _iast to _shared package#17329
Conversation
Move the native _stacktrace C extension from ddtrace/appsec/_iast/ to ddtrace/appsec/_shared/ so it can be reused by both IAST and SCA without creating a dependency from SCA into IAST internals. Split out from #17156 to keep PRs incremental and reviewable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codeowners resolved as |
Performance SLOsComparing candidate avara1986/move-stacktrace-to-shared (4b145d0) with baseline main (4b106fd) 📈 Performance Regressions (3 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 104.450µs (SLO: <130.000µs 📉 -19.7%) vs baseline: +2.1% Memory: ✅ 43.845MB (SLO: <46.000MB -4.7%) vs baseline: +4.7% ✅ add_inplace_aspectTime: ✅ 102.774µs (SLO: <130.000µs 📉 -20.9%) vs baseline: +1.1% Memory: ✅ 43.911MB (SLO: <46.000MB -4.5%) vs baseline: +4.7% ✅ add_inplace_noaspectTime: ✅ 28.151µs (SLO: <40.000µs 📉 -29.6%) vs baseline: -0.7% Memory: ✅ 43.822MB (SLO: <46.000MB -4.7%) vs baseline: +4.4% ✅ add_noaspectTime: ✅ 50.178µs (SLO: <70.000µs 📉 -28.3%) vs baseline: +2.3% Memory: ✅ 43.939MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ bytearray_aspectTime: ✅ 254.202µs (SLO: <400.000µs 📉 -36.4%) vs baseline: -0.7% Memory: ✅ 43.898MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ bytearray_extend_aspectTime: ✅ 660.105µs (SLO: <800.000µs 📉 -17.5%) vs baseline: -1.3% Memory: ✅ 43.869MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ bytearray_extend_noaspectTime: ✅ 270.035µs (SLO: <400.000µs 📉 -32.5%) vs baseline: +0.1% Memory: ✅ 43.912MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% ✅ bytearray_noaspectTime: ✅ 139.076µs (SLO: <300.000µs 📉 -53.6%) vs baseline: -0.7% Memory: ✅ 43.966MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ bytes_aspectTime: ✅ 221.181µs (SLO: <300.000µs 📉 -26.3%) vs baseline: +0.2% Memory: ✅ 43.905MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ bytes_noaspectTime: ✅ 133.753µs (SLO: <200.000µs 📉 -33.1%) vs baseline: -0.3% Memory: ✅ 43.951MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% ✅ bytesio_aspectTime: ✅ 3.794ms (SLO: <5.000ms 📉 -24.1%) vs baseline: -0.7% Memory: ✅ 43.877MB (SLO: <46.000MB -4.6%) vs baseline: +4.6% ✅ bytesio_noaspectTime: ✅ 318.419µs (SLO: <420.000µs 📉 -24.2%) vs baseline: +0.7% Memory: ✅ 43.932MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ capitalize_aspectTime: ✅ 89.901µs (SLO: <300.000µs 📉 -70.0%) vs baseline: -0.4% Memory: ✅ 43.906MB (SLO: <46.000MB -4.6%) vs baseline: +4.9% ✅ capitalize_noaspectTime: ✅ 253.065µs (SLO: <300.000µs 📉 -15.6%) vs baseline: +2.3% Memory: ✅ 44.002MB (SLO: <46.000MB -4.3%) vs baseline: +5.0% ✅ casefold_aspectTime: ✅ 93.964µs (SLO: <500.000µs 📉 -81.2%) vs baseline: +3.8% Memory: ✅ 43.959MB (SLO: <46.000MB -4.4%) vs baseline: +5.1% ✅ casefold_noaspectTime: ✅ 305.571µs (SLO: <500.000µs 📉 -38.9%) vs baseline: +0.6% Memory: ✅ 43.916MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ decode_aspectTime: ✅ 87.519µs (SLO: <100.000µs 📉 -12.5%) vs baseline: +0.6% Memory: ✅ 43.930MB (SLO: <46.000MB -4.5%) vs baseline: +4.6% ✅ decode_noaspectTime: ✅ 153.011µs (SLO: <210.000µs 📉 -27.1%) vs baseline: -0.4% Memory: ✅ 43.915MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ encode_aspectTime: ✅ 84.187µs (SLO: <200.000µs 📉 -57.9%) vs baseline: -0.3% Memory: ✅ 43.820MB (SLO: <46.000MB -4.7%) vs baseline: +4.7% ✅ encode_noaspectTime: ✅ 143.201µs (SLO: <200.000µs 📉 -28.4%) vs baseline: +1.2% Memory: ✅ 43.946MB (SLO: <46.000MB -4.5%) vs baseline: +4.7% ✅ format_aspectTime: ✅ 14.655ms (SLO: <19.200ms 📉 -23.7%) vs baseline: -0.3% Memory: ✅ 44.015MB (SLO: <46.000MB -4.3%) vs baseline: +4.9% ✅ format_map_aspectTime: ✅ 16.416ms (SLO: <21.500ms 📉 -23.6%) vs baseline: -0.2% Memory: ✅ 44.051MB (SLO: <46.000MB -4.2%) vs baseline: +4.9% ✅ format_map_noaspectTime: ✅ 378.987µs (SLO: <500.000µs 📉 -24.2%) vs baseline: +1.0% Memory: ✅ 43.981MB (SLO: <46.000MB -4.4%) vs baseline: +5.1% ✅ format_noaspectTime: ✅ 310.455µs (SLO: <500.000µs 📉 -37.9%) vs baseline: +0.7% Memory: ✅ 43.888MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ index_aspectTime: ✅ 126.240µs (SLO: <300.000µs 📉 -57.9%) vs baseline: +0.6% Memory: ✅ 43.886MB (SLO: <46.000MB -4.6%) vs baseline: +4.8% ✅ index_noaspectTime: ✅ 40.783µs (SLO: <300.000µs 📉 -86.4%) vs baseline: +1.1% Memory: ✅ 43.951MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ join_aspectTime: ✅ 212.178µs (SLO: <300.000µs 📉 -29.3%) vs baseline: -0.4% Memory: ✅ 43.973MB (SLO: <46.000MB -4.4%) vs baseline: +5.1% ✅ join_noaspectTime: ✅ 146.603µs (SLO: <300.000µs 📉 -51.1%) vs baseline: +1.1% Memory: ✅ 43.965MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ ljust_aspectTime: ✅ 508.518µs (SLO: <700.000µs 📉 -27.4%) vs baseline: +1.5% Memory: ✅ 43.979MB (SLO: <46.000MB -4.4%) vs baseline: +5.3% ✅ ljust_noaspectTime: ✅ 262.893µs (SLO: <300.000µs 📉 -12.4%) vs baseline: +0.7% Memory: ✅ 43.929MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ lower_aspectTime: ✅ 299.938µs (SLO: <500.000µs 📉 -40.0%) vs baseline: ~same Memory: ✅ 43.945MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ lower_noaspectTime: ✅ 233.718µs (SLO: <300.000µs 📉 -22.1%) vs baseline: ~same Memory: ✅ 43.955MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ lstrip_aspectTime: ✅ 0.279ms (SLO: <3.000ms 📉 -90.7%) vs baseline: -0.6% Memory: ✅ 43.935MB (SLO: <46.000MB -4.5%) vs baseline: +5.0% ✅ lstrip_noaspectTime: ✅ 0.201ms (SLO: <3.000ms 📉 -93.3%) vs baseline: 📈 +12.7% Memory: ✅ 43.956MB (SLO: <46.000MB -4.4%) vs baseline: +4.7% ✅ modulo_aspectTime: ✅ 14.348ms (SLO: <18.750ms 📉 -23.5%) vs baseline: ~same Memory: ✅ 44.073MB (SLO: <46.000MB -4.2%) vs baseline: +5.0% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.786ms (SLO: <19.350ms 📉 -23.6%) vs baseline: -0.2% Memory: ✅ 44.056MB (SLO: <46.000MB -4.2%) vs baseline: +4.6% ✅ modulo_aspect_for_bytesTime: ✅ 14.423ms (SLO: <18.900ms 📉 -23.7%) vs baseline: +0.3% Memory: ✅ 44.023MB (SLO: <46.000MB -4.3%) vs baseline: +4.3% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.608ms (SLO: <19.150ms 📉 -23.7%) vs baseline: -0.2% Memory: ✅ 44.038MB (SLO: <46.000MB -4.3%) vs baseline: +4.8% ✅ modulo_noaspectTime: ✅ 0.364ms (SLO: <3.000ms 📉 -87.9%) vs baseline: +0.7% Memory: ✅ 43.915MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ replace_aspectTime: ✅ 18.388ms (SLO: <24.000ms 📉 -23.4%) vs baseline: ~same Memory: ✅ 44.168MB (SLO: <46.000MB -4.0%) vs baseline: +5.0% ✅ replace_noaspectTime: ✅ 279.601µs (SLO: <400.000µs 📉 -30.1%) vs baseline: +0.8% Memory: ✅ 43.833MB (SLO: <46.000MB -4.7%) vs baseline: +4.8% ✅ repr_aspectTime: ✅ 321.675µs (SLO: <420.000µs 📉 -23.4%) vs baseline: -0.6% Memory: ✅ 43.924MB (SLO: <46.000MB -4.5%) vs baseline: +5.1% ✅ repr_noaspectTime: ✅ 46.608µs (SLO: <90.000µs 📉 -48.2%) vs baseline: -0.4% Memory: ✅ 43.951MB (SLO: <46.000MB -4.5%) vs baseline: +5.0% ✅ rstrip_aspectTime: ✅ 388.478µs (SLO: <500.000µs 📉 -22.3%) vs baseline: -0.3% Memory: ✅ 43.992MB (SLO: <46.000MB -4.4%) vs baseline: +4.9% ✅ rstrip_noaspectTime: ✅ 184.292µs (SLO: <300.000µs 📉 -38.6%) vs baseline: -0.6% Memory: ✅ 43.854MB (SLO: <46.000MB -4.7%) vs baseline: +4.6% ✅ slice_aspectTime: ✅ 189.822µs (SLO: <300.000µs 📉 -36.7%) vs baseline: +3.1% Memory: ✅ 43.962MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ slice_noaspectTime: ✅ 53.790µs (SLO: <90.000µs 📉 -40.2%) vs baseline: -0.1% Memory: ✅ 43.943MB (SLO: <46.000MB -4.5%) vs baseline: +5.0% ✅ stringio_aspectTime: ✅ 3.840ms (SLO: <5.000ms 📉 -23.2%) vs baseline: ~same Memory: ✅ 43.972MB (SLO: <46.000MB -4.4%) vs baseline: +4.9% ✅ stringio_noaspectTime: ✅ 350.890µs (SLO: <500.000µs 📉 -29.8%) vs baseline: +0.8% Memory: ✅ 43.880MB (SLO: <46.000MB -4.6%) vs baseline: +4.9% ✅ strip_aspectTime: ✅ 280.855µs (SLO: <350.000µs 📉 -19.8%) vs baseline: -0.6% Memory: ✅ 43.862MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ strip_noaspectTime: ✅ 177.342µs (SLO: <240.000µs 📉 -26.1%) vs baseline: ~same Memory: ✅ 43.920MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% ✅ swapcase_aspectTime: ✅ 336.632µs (SLO: <500.000µs 📉 -32.7%) vs baseline: +0.9% Memory: ✅ 43.996MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ swapcase_noaspectTime: ✅ 269.908µs (SLO: <400.000µs 📉 -32.5%) vs baseline: -0.4% Memory: ✅ 44.012MB (SLO: <46.000MB -4.3%) vs baseline: +5.1% ✅ title_aspectTime: ✅ 325.596µs (SLO: <500.000µs 📉 -34.9%) vs baseline: +0.7% Memory: ✅ 44.004MB (SLO: <46.000MB -4.3%) vs baseline: +5.2% ✅ title_noaspectTime: ✅ 257.299µs (SLO: <400.000µs 📉 -35.7%) vs baseline: -0.2% Memory: ✅ 43.911MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% ✅ translate_aspectTime: ✅ 499.631µs (SLO: <700.000µs 📉 -28.6%) vs baseline: +1.6% Memory: ✅ 43.879MB (SLO: <46.000MB -4.6%) vs baseline: +4.5% ✅ translate_noaspectTime: ✅ 425.528µs (SLO: <500.000µs 📉 -14.9%) vs baseline: -0.7% Memory: ✅ 43.965MB (SLO: <46.000MB -4.4%) vs baseline: +4.9% ✅ upper_aspectTime: ✅ 295.981µs (SLO: <500.000µs 📉 -40.8%) vs baseline: ~same Memory: ✅ 44.018MB (SLO: <46.000MB -4.3%) vs baseline: +5.4% ✅ upper_noaspectTime: ✅ 233.528µs (SLO: <400.000µs 📉 -41.6%) vs baseline: ~same Memory: ✅ 43.939MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 518.528µs (SLO: <700.000µs 📉 -25.9%) vs baseline: 📈 +23.1% Memory: ✅ 43.950MB (SLO: <46.000MB -4.5%) vs baseline: +5.0% ✅ ospathbasename_noaspectTime: ✅ 428.653µs (SLO: <700.000µs 📉 -38.8%) vs baseline: ~same Memory: ✅ 43.973MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ ospathjoin_aspectTime: ✅ 624.877µs (SLO: <700.000µs 📉 -10.7%) vs baseline: +0.4% Memory: ✅ 43.844MB (SLO: <46.000MB -4.7%) vs baseline: +4.5% ✅ ospathjoin_noaspectTime: ✅ 636.285µs (SLO: <700.000µs -9.1%) vs baseline: +1.0% Memory: ✅ 43.773MB (SLO: <46.000MB -4.8%) vs baseline: +4.4% ✅ ospathnormcase_aspectTime: ✅ 351.435µs (SLO: <700.000µs 📉 -49.8%) vs baseline: -0.3% Memory: ✅ 43.894MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ ospathnormcase_noaspectTime: ✅ 357.525µs (SLO: <700.000µs 📉 -48.9%) vs baseline: -1.6% Memory: ✅ 43.955MB (SLO: <46.000MB -4.4%) vs baseline: +4.9% ✅ ospathsplit_aspectTime: ✅ 482.741µs (SLO: <700.000µs 📉 -31.0%) vs baseline: -1.0% Memory: ✅ 44.003MB (SLO: <46.000MB -4.3%) vs baseline: +5.2% ✅ ospathsplit_noaspectTime: ✅ 494.988µs (SLO: <700.000µs 📉 -29.3%) vs baseline: +0.4% Memory: ✅ 43.811MB (SLO: <46.000MB -4.8%) vs baseline: +4.7% ✅ ospathsplitdrive_aspectTime: ✅ 373.392µs (SLO: <700.000µs 📉 -46.7%) vs baseline: -1.1% Memory: ✅ 44.001MB (SLO: <46.000MB -4.3%) vs baseline: +5.2% ✅ ospathsplitdrive_noaspectTime: ✅ 73.439µs (SLO: <700.000µs 📉 -89.5%) vs baseline: +0.9% Memory: ✅ 43.867MB (SLO: <46.000MB -4.6%) vs baseline: +5.0% ✅ ospathsplitext_aspectTime: ✅ 458.416µs (SLO: <700.000µs 📉 -34.5%) vs baseline: ~same Memory: ✅ 43.996MB (SLO: <46.000MB -4.4%) vs baseline: +5.2% ✅ ospathsplitext_noaspectTime: ✅ 466.273µs (SLO: <700.000µs 📉 -33.4%) vs baseline: +0.1% Memory: ✅ 43.866MB (SLO: <46.000MB -4.6%) vs baseline: +4.6% 📈 iastaspectssplit - 12/12✅ rsplit_aspectTime: ✅ 169.293µs (SLO: <250.000µs 📉 -32.3%) vs baseline: 📈 +10.9% Memory: ✅ 43.914MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% ✅ rsplit_noaspectTime: ✅ 161.539µs (SLO: <250.000µs 📉 -35.4%) vs baseline: +1.2% Memory: ✅ 43.913MB (SLO: <46.000MB -4.5%) vs baseline: +5.0% ✅ split_aspectTime: ✅ 150.194µs (SLO: <250.000µs 📉 -39.9%) vs baseline: -1.1% Memory: ✅ 43.989MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ split_noaspectTime: ✅ 157.796µs (SLO: <250.000µs 📉 -36.9%) vs baseline: -0.5% Memory: ✅ 44.044MB (SLO: <46.000MB -4.3%) vs baseline: +5.2% ✅ splitlines_aspectTime: ✅ 152.062µs (SLO: <250.000µs 📉 -39.2%) vs baseline: +0.2% Memory: ✅ 43.967MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ splitlines_noaspectTime: ✅ 157.314µs (SLO: <250.000µs 📉 -37.1%) vs baseline: +0.8% Memory: ✅ 44.001MB (SLO: <46.000MB -4.3%) vs baseline: +4.9% 🟡 Near SLO Breach (3 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 19.741ms (SLO: <22.300ms 📉 -11.5%) vs baseline: ~same Memory: ✅ 69.540MB (SLO: <73.500MB -5.4%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.328ms (SLO: <1.450ms -8.4%) vs baseline: ~same Memory: ✅ 67.682MB (SLO: <71.500MB -5.3%) vs baseline: +4.9% ✅ iastTime: ✅ 19.651ms (SLO: <22.250ms 📉 -11.7%) vs baseline: -0.3% Memory: ✅ 69.501MB (SLO: <75.000MB -7.3%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.140ms (SLO: <16.550ms -8.5%) vs baseline: +0.3% Memory: ✅ 60.530MB (SLO: <61.000MB 🟡 -0.8%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 19.626ms (SLO: <21.750ms -9.8%) vs baseline: ~same Memory: ✅ 69.521MB (SLO: <73.500MB -5.4%) vs baseline: +5.0% ✅ span-code-originTime: ✅ 20.300ms (SLO: <28.200ms 📉 -28.0%) vs baseline: +2.0% Memory: ✅ 69.472MB (SLO: <75.000MB -7.4%) vs baseline: +4.8% ✅ tracerTime: ✅ 19.747ms (SLO: <21.750ms -9.2%) vs baseline: -0.2% Memory: ✅ 69.501MB (SLO: <75.000MB -7.3%) vs baseline: +4.9% ✅ tracer-and-profilerTime: ✅ 21.121ms (SLO: <23.500ms 📉 -10.1%) vs baseline: +0.4% Memory: ✅ 71.546MB (SLO: <75.000MB -4.6%) vs baseline: +4.9% ✅ tracer-dont-create-db-spansTime: ✅ 19.765ms (SLO: <21.500ms -8.1%) vs baseline: ~same Memory: ✅ 69.530MB (SLO: <75.000MB -7.3%) vs baseline: +5.1% ✅ tracer-minimalTime: ✅ 16.837ms (SLO: <17.500ms -3.8%) vs baseline: -0.4% Memory: ✅ 69.481MB (SLO: <75.000MB -7.4%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 19.675ms (SLO: <21.750ms -9.5%) vs baseline: +0.5% Memory: ✅ 69.521MB (SLO: <72.500MB -4.1%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 17.685ms (SLO: <19.650ms 📉 -10.0%) vs baseline: ~same Memory: ✅ 69.481MB (SLO: <75.000MB -7.4%) vs baseline: +4.9% ✅ tracer-no-databasesTime: ✅ 19.315ms (SLO: <20.100ms -3.9%) vs baseline: ~same Memory: ✅ 69.462MB (SLO: <75.000MB -7.4%) vs baseline: +4.7% ✅ tracer-no-middlewareTime: ✅ 19.469ms (SLO: <21.500ms -9.4%) vs baseline: +0.3% Memory: ✅ 69.501MB (SLO: <75.000MB -7.3%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 19.895ms (SLO: <22.000ms -9.6%) vs baseline: +1.5% Memory: ✅ 69.520MB (SLO: <73.500MB -5.4%) vs baseline: +4.9% 🟡 recursivecomputation - 8/8✅ deepTime: ✅ 312.814ms (SLO: <320.950ms -2.5%) vs baseline: +0.5% Memory: ✅ 37.513MB (SLO: <38.750MB -3.2%) vs baseline: +4.7% ✅ deep-profiledTime: ✅ 329.193ms (SLO: <359.150ms -8.3%) vs baseline: -0.2% Memory: ✅ 43.942MB (SLO: <46.000MB -4.5%) vs baseline: +4.8% ✅ mediumTime: ✅ 7.320ms (SLO: <7.400ms 🟡 -1.1%) vs baseline: ~same Memory: ✅ 36.353MB (SLO: <38.000MB -4.3%) vs baseline: +4.9% ✅ shallowTime: ✅ 1.025ms (SLO: <1.050ms -2.4%) vs baseline: +1.3% Memory: ✅ 36.313MB (SLO: <38.000MB -4.4%) vs baseline: +4.9% 🟡 tracer - 6/6✅ largeTime: ✅ 31.576ms (SLO: <32.950ms -4.2%) vs baseline: +0.7% Memory: ✅ 37.906MB (SLO: <39.250MB -3.4%) vs baseline: +4.7% ✅ mediumTime: ✅ 3.154ms (SLO: <3.200ms 🟡 -1.4%) vs baseline: +1.0% Memory: ✅ 36.294MB (SLO: <38.750MB -6.3%) vs baseline: +4.8% ✅ smallTime: ✅ 361.613µs (SLO: <370.000µs -2.3%) vs baseline: +2.9% Memory: ✅ 36.333MB (SLO: <38.750MB -6.2%) vs baseline: +5.0%
|
rithikanarayan
left a comment
There was a problem hiding this comment.
LGTM from serverless side
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
PR can't be merged according to github policy |
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: 4b145d0 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
Summary
_stacktraceC extension fromddtrace/appsec/_iast/toddtrace/appsec/_shared/so it can be reused by both IAST and SCA without creating a dependency from SCA into IAST internals.setup.py), and test references to use the newddtrace.appsec._shared._stacktracepath.Split out from #17156 to keep PRs incremental and reviewable.
Test plan
tests/appsec/iast/test_stacktrace.py)tests/appsec/iast_memcheck/test_iast_mem_check.py)tests/appsec/architectures/test_appsec_loading_modules.py)tests/internal/test_serverless.py)🤖 Generated with Claude Code