python / python/cpython

SysLogHandler closes tcp session after first message (also noted in #66006)

Aperta
#95,891 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

stdlib type-bug
Lingua principale
Python
Stelle
77.2k
Fork
36k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

Bug report

Python 3.10.5
While running FastAPI (Uvicorn) and the SysLogHandler. The Socket if using a TCP stream is being closed after the first message, causing all additional messages to fail stating OSError10083. In looking through the SysLogHandler code I was able to add a try/except that solved the issue by opening a new socket if the current is found to be closed.

Lines 990/991:

else:
    self.socket.sendall(msg)

I changed to:

else:
    try:
        self.socket.sendall(msg)
    except OSError:
        with socket.create_connection(self.address) as s:
            s.sendall(msg)

Your environment

Python 3.10

  • CPython versions tested on: 3.10
  • Operating system and architecture: Windows 10

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia nel ramo di invio TCP di SysLogHandler intorno alle righe 990-991 e riproduci il fallimento con Python 3.10 su Windows 10 usando FastAPI e Uvicorn. Verifica che l'invio di più messaggi non fallisca dopo la chiusura del socket TCP e aggiungi o aggiorna la copertura per il comportamento di riconnessione se il repository dispone di una posizione di test pertinente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
networking, observability-sre
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.