Resolução de um bug silencioso em Go
Um canal que não escuta
Canais em Go é uma daquelas features que parecem simples até você precisar usá-la em produção com centenas de goroutines concorrentes. E é aí que “a jiripoca começa a piar”.
Este artigo conta a história de um bug silencioso que encontrei durante uma revisão de código no Ollanta, um projeto pessoal de análise de código estático multi-linguagem escrito em Go. O bug não quebrava testes, não produzia panic, não gerava erro no linter. Mas, em condições específicas, impedia o graceful shutdown do scanner por tempo indeterminado.
Leia mais →