ExpertiDict

Go · Avançado · Inglês · Informal

goroutine leak

/ˈɡoʊ.ɹuˌtiːn liːk/substantivo

Goroutine que nunca termina porque ficou bloqueada esperando um channel, um lock ou um sinal que nunca vem. Cada uma segura memória e pilha enquanto o processo viver.

Onde usar

Aparece como crescimento lento de memória e do número de goroutines em produção. Em review, a pergunta é: o que garante que essa goroutine termina?

Em código

func vazar() {
  ch := make(chan int)
  go func() {
    ch <- 1 // ninguém recebe: fica presa
  }()
}
// runtime.NumGoroutine() só cresce

Exemplos

The memory graph climbs because of a goroutine leak.

O gráfico de memória sobe por causa de um goroutine leak.

Every timeout left one goroutine stuck, a classic leak.

Cada timeout deixava uma goroutine presa, um vazamento clássico.

Cuidado

O garbage collector não recolhe goroutines bloqueadas; elas continuam vivas e referenciadas até o processo acabar.

Sinônimos

vazamento de goroutine

Veja também

Todos os termos de Go