Os bugs de software são tão persistentes como os da Natureza — uma investigação INESC TEC apertou-lhes a rede

Investigadores INESC TEC desenvolveram a ferramenta LazyFS, capaz de injetar faltas e reproduzir bugs de perda de dados. A solução vem ajudar a compreender a origem e a causa destes bugs, mas também validar mecanismos de proteção contra as falhas. 

Diz-nos o dicionário que a tradução direta do termo “bug”, utilizado para descrever erros num software, equivale, em português, a inseto. Pequenas criaturas que, de acordo com a sua constituição ou do número em que surgem, podem causar disrupções significativas à vida humana. No contexto digital, onde o termo também é utilizado, o significado não diverge do original. A existência de erros num software pode ter consequências que vão desde um anormal funcionamento à sua total inutilização. Dependendo do quão prevalentes são estes programas para os utilizadores a nível mundial, as disrupções podem atingir níveis significativos, assim como os prejuízos delas resultantes. 

Não é por isso de estranhar que a ciência esteja empenhada em encontrar forma de os identificar, eliminar ou, em último caso, diminuir as consequências que lhe estão associadas.  É precisamente nesta última vertente que se foca When Amnesia Strikes: Understanding and Reproducing Data Loss Bugs with Fault Injection, um artigo assinado por Maria Ramos, João Azevedo, José Pereira, Tânia Esteves, Ricardo Macedo e João Paulo, investigadores do INESC TEC 

Ao longo da investigação, os bugs que resultam em perdas de informação — sobretudo em aplicações centradas em dados, nomeadamente bases de dados e sistemas de armazenamento — foram estudados e reproduzidos no sentido automatizar e simplificar estes processos. Foi também feito um esforço no sentido de ajudar a compreender a causa dos bugs, com os investigadores a contarem, para tal, com informações sobre as operações realizadas pelos sistemas e identificando os dados vulneráveis. Numa terceira vertente, foram validados mecanismos de proteção contra este tipo de bugs. 

Segundo Maria Ramos, “os problemas que as equipas de desenvolvimento enfrentam ao tentar reproduzir e fazer debugging de bugs — processo que consiste em encontrar e corrigir os tão indesejados erros — de durabilidade representaram uma das motivações para este trabalho. Os utilizadores fornecem frequentemente relatórios ambíguos, sem passos claros de reprodução ou com passos complexos e manuais”. A dificuldade associada à reprodução dos bugs leva muitas vezes os utilizadores a sugerirem a modificação do código-fonte das aplicações e a interromperem, de forma abrupta, o ligação do computador à energia em janelas temporais muito específicas.  

A solução proposta no artigo — que também contou com a participação de Kyle Kingsbury, da Jepsen — dá pelo nome de LazyFS, uma ferramenta de injeção de falhas através de software que ajuda na reprodução de bugs de perda de dados e no teste de mecanismos de resiliência. “Trata-se de um sistema de ficheiros em espaço de utilizador que possui uma cache própria, permitindo injetar faltas de perda total ou parcial de dados e, deste modo, imitar o comportamento do sistema operativo (que está na origem destes bugs)”, explica Maria Ramos. O LazyFS pode também ser combinado com ferramentas de exploração de bugs, tendo sido experimentado com o Jepsen (uma ferramenta que testa a resiliência de sistemas distribuídos e que já encontrou vários bugs em sistemas amplamente utilizados).   

Outro exemplo de utilização preponderante da ferramenta apresentada na edição de 2024 da International Conference on Very Large Databases (VLDB) — uma conferência de ranking A* — são os bugs identificados, de forma independente, pelo LazyFS no etcd (sistema de armazenamento chave-valor) e prontamente reportados e confirmados. Este envolvimento culminou no interesse da equipa em integrar a ferramenta produzida por investigadores do INESC TEC nos seus testes. O mesmo veio a acontecer com a PostgreSQL e a MongoDB, no âmbito das bases de dados.   

 Os investigadores mencionados nesta notícia têm vínculo ao INESC TEC e à UMinho. 

PHP Code Snippets Powered By : XYZScripts.com
EnglishPortugal