Um estudo sobre bugs de concorrência em aplicações Go open-source - Fritz, Alonso L.; Galante, Guilherme; Oyamada, Marcio (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD); 2024: Anais do XXV Simpósio em Sistemas Computacionais de Alto DesempenhoDO - 10.5753/sscad.2024.244783, 2024)
Com a predominância de hardware multi-core, a demanda por softwares concorrentes tem aumentado. Porém escrever programas concorrentes corretos é uma tarefa pouco trivial, e lidar com esse desafio requer ainda hoje avanços em várias direções, incluindo a análise de programas concorrentes, a detecção de bugs de concorrência, padrões de correções de bugs, natureza da manifestação de bugs e outros. Este trabalho apresenta um estudo sobre as características de bugs de concorrência em aplicações escritas na linguagem Go. Foram analisados os padrões de bugs de concorrência, as causas raízes, as características referentes a manifestação, como a quantidade de goroutines e primitivas envolvidas, além das estratégias de correção de 90 bugs de concorrência selecionadas aleatoriamente de três aplicações: Docker, Terraform e CockroachDB. Os resultados indicam que 72% dos bugs registrados utilizam comunicação por memória compartilhada; e somente 15% dos bugs não-bloqueantes foram relacionados a passagem de mensagem. Esse estudo visa fornecer uma melhor compreensão dos modelos de concorrência da linguagem Go auxiliando no desenvolvimento mais confiável e seguro, e de ferramentas de diagnóstico para Go e linguagens para programação concorrente.