MagicStack / MagicStack/asyncpg

How to remove log listeners for a pool:ed connections.

Ouverte
#377 8 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
8.1k
Forks
468
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

According to the documentation the setup callback is where you should do stuff like add log listeners to the connection. It works fine but when the connection is release back to the pool I get a warning that it still have a active log listener, which is correct but misleading.

  • How/where should I remove the log listener?
  • Is there a release callback somewhere that I have missed?
  • I see that the warning is made using the warnings python api. I can just silence it but that might hide actual errors.

Example code:

pool = await asyncpg.create_pool(
    user='postgres',
    setup=lambda conn: conn.add_log_listener(_log_test),
)

After I have checked out a connection and released it back this gets printed to stdout/err:
/opt/python3.7/lib/python3.7/site-packages/asyncpg/connection.py:1295: InterfaceWarning: <wild.database.LeaderConnection object at 0x7f006d4e1208> is being released to the pool but has 1 active log listener

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par la documentation du pool de connexions et le comportement du callback de configuration décrit dans l’issue. Inspectez asyncpg/connection.py autour de la ligne 1295 pour comprendre l’avertissement concernant les listeners actifs et suivez la manière dont les connexions sont libérées. Le travail est terminé lorsque le cycle de vie des listeners est clair et que l’avertissement trompeur ou le mécanisme de libération manquant est corrigé, sans masquer les avertissements sans rapport.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
postgresql, python
Domaine
databases
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.