Auto-isolate asyncio tasks if event loop is running
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par lire l’AsyncioIntegration existante et son comportement concernant l’isolation du scope, puis comparez les conceptions proposées pour l’activation automatique. Vérifiez comment une event loop en cours d’exécution est patchée, si plusieurs patchs successifs sont possibles et quel serait l’impact sur les utilisateurs existants d’AsyncioIntegration. Le travail est terminé lorsque l’isolation des tâches fonctionne automatiquement, tandis que les fonctionnalités supplémentaires restent explicitement opt-in et que les cas sans event loop échouent proprement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Currently, the opt-in AsyncioIntegration is responsible for multiple things, one of them being providing proper scope isolation in asyncio tasks. Without this functionality, people are running into different types of hard-to-diagnose scope bleed issues, like here.
Goal
- Automatically patch the current event loop to isolate tasks in their isolation scopes, if there is an event loop running
- For additional functionality (creating task spans, etc.), explicit opt-in should still be required from users
How to do this
Different ways to do this, each with its own caveats (e.g. introducing breaking changes).
- Take the isolation scope logic out of
AsyncioIntegrationinto its own integration and make it auto-enabled (best effort, if there is no event loop we can't do anything). - Make
AsyncioIntegrationauto-enabled, and change the additional functions it's providing (like task spans) to be opt-in. Also, make it fail gracefully if there is no event loop to patch. - ???
When picking an option, consider:
- Will this break behavior for existing users using the
AsyncioIntegration? - Is there a risk of double-patching the event loop?
- Langage dominant
- Python
- Étoiles
- 2.2k
- Forks
- 672
- Merge moyen
- 22 h 47 min
- PR mergées (30 j)
- 224
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de getsentry/sentry-python
-
Python
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
getsentry/sentry-python#7569 · 1 commentaire ·
-
Python
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
getsentry/sentry-python#7568 · 2 commentaires ·
-
Python
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
getsentry/sentry-python#7567 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
getsentry/sentry-python#7543 · 2 commentaires · 1 personne assignée ·
-
Python
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-python#6992 · 1 commentaire ·
Toutes les issues de getsentry/sentry-python
Issues similaires
-
essnmx good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
-
[Feature] 奇物选择添加优先级 Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Giskard-AI/giskard-oss#2840 · 1 commentaire ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Ouvertearea: repo bug perceived difficulty: 2
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
yeti-platform/yeti#1380 ·