Skip to content

feat(python): add cross-cutting gate scenarios for 3.14/3.15 (PROF-15511) - #172

Draft
vlad-scherbich wants to merge 4 commits into
vlad/python-stack-advanced-gatefrom
vlad/python-cross-cutting-gate
Draft

feat(python): add cross-cutting gate scenarios for 3.14/3.15 (PROF-15511)#172
vlad-scherbich wants to merge 4 commits into
vlad/python-stack-advanced-gatefrom
vlad/python-cross-cutting-gate

Conversation

@vlad-scherbich

@vlad-scherbich vlad-scherbich commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Prev: #171

Motivation

Final batch of the default migration gate — integration-shaped workloads that stress the profiler under GIL contention, alternative event loops (uvloop), and greenlet-based concurrency (gevent). Completes the 22-scenario default downstream regexp.

Summary

Adds 6 scenario directories (3 families × 2 versions):

Family Integration shape
python_gil_contention Multi-threaded GIL contention
python_uvloop uvloop event loop
python_gevent gevent greenlets

All paired 3.14/3.15; 3.15 dirs wheel-only.

Gate grows 16 → 22 scenarios. Feature-specific pairs (mem_domain, live_heap) remain in parallel PRs #167 / #168.

After this stack lands: wire dd-trace-py downstream job to pass the gate regexp (not bare python.*), then tighten to blocking once CI is stable.

Test plan

  • go test -run TestSchemaValidation
  • ruff check on scenario sources
  • Downstream gate with DDTRACE_INSTALL_URL

@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from b42f8fa to b771de9 Compare July 27, 2026 19:20
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from b771de9 to d05980c Compare July 27, 2026 19:33
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from d05980c to 67d612c Compare July 27, 2026 19:38
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from 67d612c to 008aa5c Compare July 27, 2026 21:41
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from 008aa5c to 2cadb76 Compare July 27, 2026 21:45
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from 2cadb76 to 7294ab9 Compare July 27, 2026 22:01
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch 2 times, most recently from 37aaec6 to f4a4474 Compare July 27, 2026 22:06
@vlad-scherbich vlad-scherbich changed the title feat(python): add cross-cutting gate scenarios for 3.14/3.15 feat(python): add cross-cutting gate scenarios for 3.14/3.15 (PROF-15511) Jul 27, 2026
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from f4a4474 to f7aabb4 Compare July 27, 2026 22:29
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from f7aabb4 to e4971af Compare July 28, 2026 02:02
Add paired gil_contention, uvloop, and gevent scenarios for integration
shapes on the migration gate path. Gate grows from 20 to 26 scenarios.
Python 3.14 uses Target.method stack frames and numeric thread IDs in
alloc profiles; gevent Hub frames are Hub.run;loop.run. Simplify gevent
assertions to percent-based checks, fix ruff format on safe_point_bias
README, and widen node_heap space margin for CI variance.
Absolute object counts are unstable across Node CI runners; switch to
percent-based checks with wider margins while keeping space assertions.
Drop node_heap objects checks (dominated by startup noise on CI); keep
space ratio assertions. Widen node_code_hotspots busyLoop margin to 3%.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from e4971af to 44ae38e Compare July 28, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant