warning: the cancel function returned by context.WithCancel / WithTimeout should be called (context leak) – Golang CONTEXT_LEAK_MISSING_CANCEL

CONTEXT_LEAK_MISSING_CANCEL

Quando si crea un contesto derivato ('ctx, cancel := context.WithTimeout(...)'), omettere l'istruzione 'defer cancel()' lascia attivi i timer e le goroutine interne del context package fino alla scadenza del timeout, sprecando memoria.

Cosa significa questo errore?

Quando si crea un contesto derivato ('ctx, cancel := context.WithTimeout(...)'), omettere l'istruzione 'defer cancel()' lascia attivi i timer e le goroutine interne del context package fino alla scadenza del timeout, sprecando memoria.

Messaggio originale

warning: the cancel function returned by context.WithCancel / WithTimeout should be called (context leak)

Contesto e parole chiave

Alias

  • the cancel function should be called context leak Go

Messaggi alternativi

  • funzione cancel di context non invocata fuga memoria timer

Prodotti

  • Go Runtime / Go Compiler / Go Modules

Piattaforme

  • Linux
  • macOS
  • Windows

Parole chiave

  • CONTEXT_LEAK_MISSING_CANCEL
  • errore-golang-context-leak-missing-cancel
  • go
  • golang
  • golang.concorrenza.context-leak-missing-cancel-call
  • Goroutine e Concorrenza

Cause possibili

Origine del problema per Errore Go: Context Leak per Mancata Chiamata della Funzione cancel()

Quando si crea un contesto derivato ('ctx, cancel := context.WithTimeout(...)'), omettere l'istruzione 'defer cancel()' lascia attivi i timer e le goroutine interne del context package fino alla scadenza del timeout, sprecando memoria.

molto comune

Diagnosi

Verifica e diagnostica per Errore Go: Context Leak per Mancata Chiamata della Funzione cancel()

Eseguire i comandi go build o go vet per rilevare incongruenze a livello di codice.

Come leggere il risultato. Restituisce eventuali errori statici, disallineamenti di tipo o race condition nel codice Go.

terminal
go vet ./...

Risoluzione

Risoluzione per Errore Go: Context Leak per Mancata Chiamata della Funzione cancel()

Difficoltà: mediaRischio: basso

Applicare la correzione raccomandata nel codice sorgente Go o nella configurazione dei moduli.

  1. Ispezionare la riga evidenziata dal compilatore o lo stack trace del panic
  2. Applicare il pattern idiomatico Go (sincronizzazione, gestione errori, canali)
  3. Eseguire go test -v ./... per confermare la piena stabilità
terminal
go test -v ./...

Domande frequenti

Come risolvere l'errore Errore Go: Context Leak per Mancata Chiamata della Funzione cancel() in Go?

Quando si crea un contesto derivato ('ctx, cancel := context.WithTimeout(...)'), omettere l'istruzione 'defer cancel()' lascia attivi i timer e le goroutine interne del context package fino alla scadenza del timeout, sprecando memoria.

Approfondimenti

Schede correlate