Esta página descreve como investigar ausências no cache no contexto da execução local.
Esta página pressupõe que você tenha um build e/ou teste que seja criado 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 conferir dicas sobre como verificar a taxa de ocorrências 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.
Como verificar a taxa de ocorrências em cache
As ocorrências no cache remoto bem-sucedidas vão aparecer na linha de status, semelhante a taxa de ocorrências no cache com execução remota.
Na saída padrão da execução do Bazel, você verá algo como:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
Isso significa que, das sete ações tentadas, três tiveram uma ocorrência em cache remoto e quatro ações não tiveram ocorrências em cache e foram executadas localmente usando a estratégia linux-sandbox. As ocorrências no cache local não estão incluídas nesse 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.
Solução de problemas de ocorrências no cache
Se você não estiver recebendo a taxa de ocorrências em cache esperada, faça o seguinte:
Garantir a comunicação bem-sucedida 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 na comunicação com o endpoint remoto causaria falha no build. Por outro lado, um build 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 que pode ajudar você a depurar: por exemplo, nome do endpoint digitado incorretamente ou credenciais definidas incorretamente. Encontre e resolva esses erros. Se a mensagem de erro que você vê não fornecer informações suficientes, tente adicionar
--verbose_failures.Siga as etapas de Solução de problemas de ocorrências em cache para execução remota para garantir que as invocações do Bazel de gravação em cache possam receber ocorrências em cache na mesma máquina e em várias máquinas.
Garanta que as invocações do Bazel de leitura de cache possam receber ocorrências no cache.
a. Como as invocações do Bazel de leitura de cache terão uma configuração de linha 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_cacheestá definida e se não há avisos na saída.b. Garanta que as invocações do Bazel de leitura de cache criem os mesmos destinos que as invocações do Bazel de gravação em cache.
c. Siga as mesmas etapas para garantir o armazenamento em cache em várias máquinas, para garantir o armazenamento em cache da invocação do Bazel de gravação em cache para a sua invocação do Bazel de leitura de cache.