Depurando um deadlock do JDK em 30 minutos com Fray: Um thriller de concorrência
2025-06-07
Ao adicionar testes de integração para o Fray, o autor encontrou um deadlock no ScheduledThreadPoolExecutor do JDK, acionado por um código aparentemente inócuo. Aproveitando a reprodução determinística e a visualização de programação do Fray, a causa raiz foi rapidamente identificada: No estado SHUTDOWN, FutureTask.get pode bloquear indefinidamente. Isso decorre da execução intercalada dos métodos schedule e shutdown, deixando tarefas em um estado de limbo. O Fray forneceu uma visão clara da intercalação de threads, permitindo a reprodução e a notificação desse bug de concorrência do JDK.
(aoli.al)
Desenvolvimento