Issue with XPTI subscriber detection for subprocess inheritance
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con la implementación de IsSubscriberToXPTI mostrada en el issue y sigue la prueba de subprocess de Python que inicializa la biblioteca PTI. Verifica el comportamiento para un valor heredado de libpti.so en Linux y de pti.dll en Windows, conservando la detección de unitrace y de suscriptores externos. Se considera terminado cuando el proceso hijo ya no muestra una advertencia sobre PTI en sí, pero sigue identificando suscriptores externos reales.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The last release introduced an issue with subprocess XPTI subscriber detection:
Process 1 (Parent Process):
- Python test initializes and loads PTI library
- PTI queries
XPTI_SUBSCRIBERSenvironment variable: Result = Not Set - PTI registers as XPTI subscriber by setting:
XPTI_SUBSCRIBERS=/path/to/libpti.so
Process 2 (Child Process via subprocess):
- Child process inherits env from parent process including:
XPTI_SUBSCRIBERS=/path/to/libpti.so(inherited) - Child process loads PTI library
- PTI queries
XPTI_SUBSCRIBERSenvironment variable: Result = Already Set - PTI incorrectly interprets parent's PTI subscription as foreign subscriber
- PTI outputs warning:
"Another subscriber already subscribed to Sycl runtime events..."
Root Cause
The current implementation only checks if XPTI_SUBSCRIBERS is non-empty, without difference between PTI itself and real foreign subscribers.
Current Implementation
inline std::pair<bool, bool> IsSubscriberToXPTI() {
auto current_xpti_subscriber = utils::GetEnv("XPTI_SUBSCRIBERS");
// and may be it is unitrace
return {!current_xpti_subscriber.empty(),
current_xpti_subscriber.find("unitrace") != std::string::npos};
}
Proposed Fix
inline std::pair<bool, bool> IsSubscriberToXPTI() {
auto current_xpti_subscriber = utils::GetEnv("XPTI_SUBSCRIBERS");
bool is_unitrace = current_xpti_subscriber.find("unitrace") != std::string::npos;
if (current_xpti_subscriber.empty()) {
return {false, is_unitrace};
}
// Check if the subscriber is PTI itself (not foreign for linux + win)
if (current_xpti_subscriber.find("libpti") != std::string::npos ||
current_xpti_subscriber.find("pti.dll") != std::string::npos) {
return {false, is_unitrace};
}
// It's a real foreign subscriber (not PTI)
return {true, is_unitrace};
}
Related issue : https://github.com/intel/intel-xpu-backend-for-triton/issues/4998
- Lenguaje dominante
- C++
- Estrellas
- 278
- Forks
- 75
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de intel/pti-gpu
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
Todos los issues de intel/pti-gpu
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
parse_selu lowering loses catastrophic cancellation → silent 0.0 for moderate positive inputsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
ROCm/AMDMIGraphX#5490 ·
Los mantenedores suelen responder en 3 días
-
符号半角全角问题Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
arvidn/libtorrent#9126 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Sunrisepeak/mcpp-language-server#80 ·
Los mantenedores suelen responder en 1 día