Estudo de caso
Estudo de caso: como rastreamos uma falha após operação prolongada até um vazamento de handles
Estudo de caso técnico de uma falha que só aparecia em escala de cerca de um mês de operação e foi reduzida a uma investigação de vazamento de handles por meio da organização dos pontos de observação e do reforço dos logs.
Visão geral do caso
Este caso trata de um aplicativo Windows que caía de repente apenas após cerca de um mês de operação contínua. Partindo da organização dos pontos de observação, a investigação foi sendo reduzida até se concentrar em um vazamento de handles. O ponto central foi que definimos não apenas a causa em si, mas quais observações deveriam ser montadas primeiro.
Sintomas
- A falha não aparecia em poucos dias; ocorria apenas após operação prolongada
- Pela forma como as exceções apareciam, era difícil dizer se se tratava de um vazamento
- Só acontecia em campo, e na máquina de desenvolvimento foi preciso comprimir a reprodução
Restrições
- Esperar meses por uma reprodução não era realista
- Como o cenário envolvia reconexão da câmera e caminhos de falha, os logs do fluxo normal não bastavam
- Era preciso observar continuamente quais recursos estavam crescendo
O que observamos
- Heartbeat de
Handle Count,Private ByteseThread Count - Logs de fronteira para início, reconexão e término de sessão
- Logs de ciclo de vida em pares:
create/open/registereclose/dispose/unregister
Como isolamos o problema
Primeiro, em vez de perseguir diretamente a “falha em operação prolongada”, reduzimos a reprodução aos caminhos de falha em torno de reconexões e timeouts. Com isso, concluímos que era mais plausível suspeitar de um vazamento de handles do que de um vazamento de memória, e passamos a concentrar a observação nele.
O que melhorou
- Ampliamos os itens monitorados, de modo a acompanhar a tendência de crescimento e não apenas o momento da falha
- Organizamos os logs de fronteira para facilitar o rastreamento de qual componente abriu e qual fechou cada recurso
- Estruturamos os resultados da investigação de modo que possam alimentar com facilidade uma infraestrutura de testes de caminhos de falha
Serviços relacionados a este caso
Este caso se liga tanto à investigação de falhas e análise de causa raiz, que isola falhas que só aparecem após operação prolongada, quanto ao desenvolvimento de aplicativos Windows, que organiza do lado da implementação os logs, a reconexão e a observação operacional.
Consulte-nos
Se esta página se aproxima da situação que você enfrenta, consulte-nos informando o contexto atual e o tipo de apoio de que precisa.