Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Segment context not propagated when `asyncio.run_in_executor` is used

Abierto
#446 2 comentarios 5 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
aws, python

Línea de trabajo

Comienza con las indicaciones de la README sobre la propagación de trazas en grupos de hilos y el punto de entrada AsyncContext utilizado con loop.run_in_executor. Reproduce el ejemplo minimizado y, a continuación, rastrea cómo run_task obtiene el segmento actual y verifica que el ejemplo se completa sin mensajes de segmento ausente o subsegmento ausente cuando la propagación es automática.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

(Minimised) Example code:

import asyncio

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all
from aws_xray_sdk.core.async_context import AsyncContext

import boto3

xray_recorder.configure(service="Test app", sampling=False, context=AsyncContext())
patch_all()


def run_task():
    s3_client = boto3.client("s3")
    s3_client.list_buckets()


async def main():
    loop = asyncio.get_running_loop()
    xray_recorder.begin_segment("test")
    await loop.run_in_executor(None, run_task)
    xray_recorder.end_segment()


asyncio.run(main())

Output:

cannot find the current segment/subsegment, please make sure you have a segment open
No segment found, cannot begin subsegment s3.
cannot find the current segment/subsegment, please make sure you have a segment open
cannot find the current segment/subsegment, please make sure you have a segment open
No segment to end
cannot find the current segment/subsegment, please make sure you have a segment open

I understand from the README that when using a thread pool (which is the default executor), the trace entity needs to be manually propagated. Could it be propagated automatically?

I'm asking because in the use case I have, a 3rd party library I'm using is making the call so I couldn't patch the call sites easily.

Lenguaje dominante
Python
Estrellas
339
Forks
148
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aws/aws-xray-sdk-python

Todos los issues de aws/aws-xray-sdk-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.