Esta página descreve como investigar falhas de cache no contexto da execução local.
Esta página pressupõe que você tenha uma build e/ou um teste que seja criado com sucesso localmente e esteja configurado para usar o armazenamento em cache remoto, e que você queira garantir que o cache remoto esteja sendo usado de maneira eficaz.
Para dicas sobre como verificar sua taxa de ocorrência em cache e comparar os registros de execução entre duas invocações do Bazel, consulte Depuração de ocorrências em cache remoto para execução remota. Tudo o que é apresentado nesse guia também se aplica ao armazenamento em cache remoto com execução local. No entanto, a execução local apresenta alguns desafios adicionais.
Verificar sua taxa de ocorrência em cache
As ocorrências bem-sucedidas do cache remoto vão aparecer na linha de status, semelhante a Taxa de ocorrências em cache com execução remota.
Na saída padrão da execução do Bazel, você vai encontrar algo como o seguinte:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
Isso significa que, das sete ações tentadas, três tiveram uma ocorrência no cache remoto e quatro
não tiveram ocorrências no cache e foram executadas localmente usando a estratégia linux-sandbox
. Ocorrências em cache local não estão incluídas neste resumo. Se você estiver recebendo
0 processos (ou um número menor do que o esperado), execute bazel clean
seguido do
comando de build/teste.
Como solucionar problemas de ocorrências em cache
Se você não estiver recebendo a taxa de acertos de cache esperada, faça o seguinte:
Garantir a comunicação com o endpoint remoto
Para garantir que o build esteja se comunicando com o cache remoto, siga as etapas desta seção.
Verificar se há avisos na saída
Com a execução remota, uma falha ao se comunicar com o endpoint remoto faria com que sua build falhasse. Por outro lado, uma compilação local armazenável em cache não falharia se não pudesse armazenar em cache. Verifique a saída da invocação do Bazel para avisos, como:
WARNING: Error reading from the remote cache:
ou
WARNING: Error writing to the remote cache:
Esses avisos serão seguidos pela mensagem de erro que detalha o problema de conexão e ajuda na depuração. Por exemplo, nome de endpoint digitado incorretamente ou credenciais definidas de forma incorreta. Encontre e corrija esses erros. Se a mensagem de erro que aparece não fornecer informações suficientes, tente adicionar
--verbose_failures
.Siga as etapas em Solução de problemas de acertos de cache para execução remota para garantir que as invocações do Bazel de gravação em cache consigam acertos de cache na mesma máquina e em máquinas diferentes.
Verifique se as invocações do Bazel que leem o cache podem receber hits de cache.
a. Como as invocações do Bazel de leitura de cache têm um conjunto de linhas de comando diferente, tome cuidado extra para garantir que elas estejam configuradas corretamente para se comunicar com o cache remoto. Verifique se a flag
--remote_cache
está definida e se não há avisos na saída.b. Verifique se as invocações do Bazel que leem o cache criam os mesmos destinos que as invocações do Bazel que gravam o cache.
c. Siga as mesmas etapas para garantir o armazenamento em cache em várias máquinas e para garantir o armazenamento em cache da invocação do Bazel de gravação no cache para a invocação do Bazel de leitura no cache.