[5/12][ci-selector][CI] Skip the Proton GPU test when another CUPTI tool is injected (#58455)

Signed-off-by: khluu <khluu000@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

Kevin H. Luu committed Sep 23, 2026 at 17:25 UTC 7ef0d69ea0b0bd6c765335592c0583fc792007ad
1 file changed +10
tests/v1/worker/test_gpu_profiler.py
+10
@@ -611,6 +611,15 @@ _requires_cuda_for_proton = pytest.mark.skipif(
611 reason="Proton profiling tests require an NVIDIA CUDA platform.",
612 )
613
614 +# Proton subscribes to CUPTI itself, and a process gets one CUPTI subscriber.
615 +# CI's kernel-launch recorder is another, injected through CUDA_INJECTION64_PATH
616 +# on recording runs, and there Proton's cuptiSubscribe fails with error 39.
617 +_requires_no_injected_cupti_tool = pytest.mark.skipif(
618 + bool(os.environ.get("CUDA_INJECTION64_PATH")),
619 + reason="Another CUPTI tool is injected (CUDA_INJECTION64_PATH); "
620 + "Proton has to be the only one.",
621 +)
622 +
623
624 @_requires_cuda_for_proton
625 class TestProtonConfig:
@@ -1176,6 +1185,7 @@ def test_proton_initializes_before_cuda_graph_capture():
1185
1186
1187 @_requires_cuda_for_proton
1188 +@_requires_no_injected_cupti_tool
1189 @pytest.mark.parametrize("context", ["shadow", "python"])
1190 @pytest.mark.parametrize("output_format", ["hatchet", "hatchet_msgpack"])
1191 def test_proton_cuda_graph_replay_attribution_on_gpu(tmp_path, context, output_format):