Solução de problemas

Nesta página, mostramos como resolver problemas com o Batch.

Se você estiver tentando resolver um problema de um job uma mensagem de erro para, verifique se o histórico da tarefa contém mensagens de erro ao visualizar eventos de status antes de analisar este documento.

Para mais informações sobre como solucionar problemas de um job, consulte também os seguintes documentos:

Erros de criação de jobs

Se não for possível criar um job, talvez seja por causa de um dos erros nesta seção.

Cota insuficiente

Problema

Um dos seguintes problemas ocorre quando você tenta criar uma tarefa:

  • Quando o job está no estado QUEUED, o problema a seguir aparece Campo statusEvents:

    Quota checking process decides to delay scheduling for the job JOB_UID due to inadequate quotas [Quota: QUOTA_NAME, limit: QUOTA_LIMIT, usage: QUOTA_CURRENT_USAGE, wanted: WANTED_QUOTA.].
    

    Esse problema indica que o job foi atrasado porque o uso atual (QUOTA_USAGE) e limite (QUOTA_LIMIT) da cota de QUOTA_NAME impediram que o job o uso solicitado (WANT_QUOTA).

  • Quando o job está em Estados QUEUED, SCHEDULED ou FAILED, um dos seguintes problemas aparece no Campo statusEvents:

    RESOURCE_NAME creation failed:
    Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in region REGION
    
    RESOURCE_NAME creation failed:
    Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in zone ZONE
    

    Esse problema indica que a criação de um recurso falhou porque a solicitação excedeu sua cota de QUOTA_NAME, que tem um limite de QUOTA_LIMIT nos em um local específico.

Solução

Para resolver o problema, faça o seguinte:

  • Se o job atrasou, aguarde até que mais cota seja liberada.

  • Se o job falhou devido à cota insuficiente ou se esses atrasos persistirem, Para evitar cota insuficiente, realize uma das seguintes ações:

    • Criar jobs que usem menos dessa cota ou uma cota diferente. Por exemplo, especifique um local ou tipo de recurso permitido diferente para o job ou dividir o uso da cota entre outros projetos.

    • Solicite um limite de cota maior para seu projeto no Google Cloud.

Para mais informações, consulte Limites e cotas de lote e Trabalhar com cotas.

Permissões insuficientes para atuar como conta de serviço

Problema

O seguinte problema ocorre quando você tenta criar uma tarefa:

  • Se o job não usar um modelo de instância, o problema aparecerá assim:

    caller does not have access to act as the specified service account: SERVICE_ACCOUNT_NAME
    
  • Se o job usar um modelo de instância, o problema aparecerá assim:

    Error: code - CODE_SERVICE_ACCOUNT_MISMATCH, description - The service account specified in the instance template INSTANCE_TEMPLATE_SERVICE_ACCOUNT doesn't match the service account specified in the job JOB_SERVICE_ACCOUNT for JOB_UID, project PROJECT_NUMBER
    

Esse problema geralmente ocorre porque o usuário que cria a tarefa não tem permissões suficientes para atuar como a conta de serviço usada pelo job que é controlada pela Permissão iam.serviceAccounts.actAs.

Solução

Para resolver o problema, faça o seguinte:

  1. Se o job usar um modelo de instância, verifique se a conta de serviço especificado no modelo de instância corresponde à conta de serviço especificado na definição do job.
  2. Verifique se o usuário que está criando o job recebeu Papel de usuário da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço especificada para o job. Para mais informações, consulte Gerenciar acesso.
  3. Recrie o job.

Redes repetidas

Problema

O seguinte problema ocorre quando você tenta criar uma tarefa:

Networks must be distinct for NICs in the same InstanceTemplate

Esse problema ocorre porque você especificou a rede para um trabalho mais de uma vez.

Solução

Para resolver o problema, recrie o job e especifique a rede usando uma das seguintes opções:

Para mais informações, consulte Especificar a rede para um job.

Rede inválida para VPC Service Controls

Problema

O seguinte problema ocorre quando você tenta criar uma tarefa:

no_external_ip_address field is invalid. VPC Service Controls is enabled for the project, so external ip address must be disabled for the job. Please set no_external_ip_address field to be true

Solução

Esse problema ocorre porque você está tentando criar e executar um job com VMs com endereços IP externo em um perímetro de serviço do VPC Service Controls.

Para resolver o problema, criar um job que bloqueie o acesso externo de todas as VMs.

Para mais informações sobre como configurar redes para um job em um perímetro de serviço do VPC Service Controls, consulte Usar VPC Service Controls com lote.

Problemas de job e erros de falha

Se você tiver problemas com um job que não está sendo executado corretamente ou falhou para por motivos pouco claros, pode ser devido a um dos erros nesta seção ou um dos códigos de saída Seção Códigos de saída de falha de tarefas.

Nenhum registro no Cloud Logging

Problema

Você precisa depurar um job, mas nenhum registro dele aparece para ele o Cloud Logging.

Esse problema geralmente ocorre pelos seguintes motivos:

  • A API Cloud Logging não está ativada para seu projeto. Mesmo que você configure corretamente todo o restante para os registros de um job, ele não produzirá registros se o serviço não estiver ativado para seu projeto.
  • A conta de serviço do job não tem permissão para gravar registros. Um job não pode produzir registros sem permissões suficientes.
  • O job não foi configurado para produzir registros. Para gerar registros Cloud Logging, o job precisa ter o Cloud Logging ativado. O tipo de executáveis também devem ser configurados para gravar as informações que você deseja aparecem nos registros para a saída padrão (stdout) e em fluxos de erro padrão (stderr). Para mais informações, consulte Analisar um job usando registros.
  • As tarefas não foram executadas. Os registros não podem ser produzidos até que as tarefas tenham sido aos recursos atribuídos e começar a executar.
  • O Cloud Logging foi configurado para excluir automaticamente os registros do job. Os registros de jobs em lote não podem aparecer se você tiver configurado filtros de exclusão para o Cloud Logging que fazem com que registros de jobs em lote sejam excluídos.

Solução

Para resolver esse problema, faça o seguinte:

  1. Verifique se os registros não foram excluídos automaticamente do Cloud Logging desativando qualquer filtros de exclusão para o Cloud Logging.
  2. Verifique se a API Cloud Logging está ativada para seu projeto.
  3. A conta de serviço do job precisa ter o Gravador de registros (roles/logging.logWriter) do IAM. Para mais informações, consulte Ativar o Batch para um projeto.
  4. Visualize os detalhes do job usando a CLI gcloud ou a API Batch. Os detalhes do trabalho podem ajudar você a entender por que o trabalho não registros e podem fornecer informações que você esperava dos registros. Por exemplo, faça o seguinte:
    1. Para verificar se a geração de registros está ativada, revise o job campo logsPolicy.
    2. Para verificar se o job foi executado com sucesso, revise o campo status.

Depois de fazer as alterações, recrie o job e aguarde até que ele seja termine de executar antes de verificar os registros.

Nenhum relatório de agente de serviço

Problema

O problema a seguir aparece Campo statusEvents para um job que não está sendo executado corretamente ou que falhou antes da criação das VMs:

No VM has agent reporting correctly within time window NUMBER_OF_SECONDS seconds, VM state for instance VM_NAME is TIMESTAMP,agent,start

O problema indica que nenhuma das VMs de um job está relatando ao Agente de serviço em lote:

Esse problema geralmente ocorre pelos seguintes motivos:

  • As VMs do job não têm permissões suficientes. As VMs de um job exigem permissões específicas para informar o estado ao Agente de serviço em lote. Você pode fornecer essas permissões para as VMs de um job concedendo o Papel de informante de agente em lote (roles/batch.agentReporter) à conta de serviço do job.
  • As VMs do job têm problemas de rede. As VMs de um job precisam de acesso para se comunicar com o agente de serviço do Batch.
  • As VMs do job estão usando uma imagem desatualizada do SO da VM em lote ou uma imagem do SO da VM com um software agente de serviço do Batch desatualizado. As VMs do job exigem um software na imagem do SO da VM que forneça a dependências atuais para gerar relatórios Agente de serviço em lote.

Solução

Para resolver o problema, faça o seguinte:

  1. Verificar se as VMs do job têm as permissões necessárias para informar o estado para o agente de serviço do Batch.

    1. Para identificar a conta de serviço do job, ver os detalhes do job usando a CLI gcloud ou a API Batch. Se nenhuma conta de serviço estiver listada, o job usará o conta de serviço padrão.
    2. Confirme se a conta de serviço do job tem permissões para o Papel de informante de agente em lote (roles/batch.agentReporter). Para mais informações, consulte Gerenciar acesso e Como restringir o uso da conta de serviço.

      Por exemplo, para conceder o à conta de serviço padrão do Compute Engine as permissões necessárias, use este comando:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --role roles/batch.agentReporter \
        --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
      
  2. Verificar se as VMs do job têm acesso adequado à rede. Para mais informações, consulte Visão geral da rede em lote e Solucionar problemas comuns de rede.

  3. Se você especificou a imagem do SO da VM para o job, verifique se o No momento, há suporte para a imagem do SO da VM.

    1. Se você ativou o Cloud Logging para o job, é possível identificar esse problema verificando se há algum dos seguintes registros do agente (batch_agent_logs). Para mais informações, consulte Analisar um job usando registros.

      • Registro do erro de software do agente de serviço do Batch desatualizado:

        rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_AGENT_VERSION: outdated Batch agent version used.
        

        O BATCH_AGENT_VERSION é a versão do software comunicando-se com o agente de serviço do Batch usos de job, por exemplo, cloud-batch-agent_20221103.00_p00.

      • Registro de erro de imagem do SO da VM em lote desatualizada:

        rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_VM_OS_IMAGE_NAME: outdated Batch image version.
        

        O BATCH_VM_OS_IMAGE_NAME é a versão específica de um Imagem do SO da VM do Batch que o job usa, por exemplo, batch-debian-11-20220909-00-p00.

    2. Resolva esse problema usando uma imagem mais recente do SO da VM. Se o job usar uma imagem personalizada, recrie-a com base em uma da versão mais recente de uma imagem pública compatível.

      Para mais informações, consulte Imagens de SO de VM compatíveis. e Visualizar imagens do SO da VM.

  4. Recrie o job.

Métricas de recursos ausentes no Cloud Monitoring

Problema

Você quer visualizar métricas de recursos para um job, mas algumas ou todas as métricas esperadas estão ausentes.

Esse problema geralmente ocorre pelos seguintes motivos:

  • A API não foi ativada no seu projeto. Mesmo que você configure corretamente todo o restante do projeto, os recursos as métricas podem não aparecer até que a API Cloud Monitoring seja ativada. Para o Agente de operações, você também precisa ativar a API Cloud Logging.
  • Você não tem permissões suficientes para visualizar as métricas. Você não pode visualizar métricas sem permissões suficientes.
  • As VMs do job não foram executadas. Não é possível produzir métricas para um job até que pelo menos uma das VMs do job esteja em execução.
  • A configuração ou as permissões do job não eram compatíveis com as métricas do Agente de operações. Algumas métricas de recursos só podem ser fornecidas pelo Agente de operações. Para dar suporte a operações do Agente, um job precisa atender aos requisitos do Agente de operações, instalar o Agente de operações e uma conta de serviço que possa gravar métricas e monitoramento.
  • Você precisa usar um método ou filtro diferente para conferir as métricas. Alguns métodos para visualizar métricas não mostram as métricas das VMs após elas são excluídos. Além disso, as métricas não serão exibidas se forem omitidas pelos filtros ou o período exibido. Além disso, os gráficos de métricas têm controles e resoluções que podem fazer com que pequenas quantidades de dados sejam muito finas para serem exibidas.
  • As métricas foram excluídas. Não é possível visualizar métricas depois de excluídas, que acontece automaticamente após o período de retenção períodos.

Solução

Se apenas as métricas do Agente de operações estiverem ausentes, primeiro tente resolver o problema seguintes:

  1. Para verificar a configuração do job, faça o seguinte:
    1. Para conferir as informações completas de configuração do job, ver os detalhes do job usando a CLI gcloud ou a API Batch. Usar a saída para as etapas restantes.
    2. Confira se a conta de serviço do job tem o permissões para gravar métricas do agente de operações.
    3. Certifique-se de que o trabalho atenda a todos Requisitos do Agente de operações.
    4. Verifique se o job instala corretamente o Agente de operações. Embora seja instalar o Agente de operações manualmente em um arquivo executável, método recomendado é instalar automaticamente o Agente de operações definindo Campo installOpsAgent para true.
  2. Se o problema persistir, consulte Resolver problemas do Agente de operações na documentação de observabilidade do Google Cloud.

Caso contrário, resolva o problema fazendo o seguinte:

  1. Verifique se a API Monitoring está ativada para seu projeto:

    Ative a API

  2. Verifique se as VMs do job começaram a ser executadas e se o ambiente de execução ainda é no Como monitorar períodos de armazenamento: Para conferir o ambiente de execução do job, visualização dos detalhes do job.
  3. Verifique se não há problemas com os métodos usados para visualizar fazendo o seguinte:
    1. A menos que você queira ver métricas somente para recursos em execução, verifique se se você visualizar métricas usando o Metrics Explorer ou um criado com os gráficos do Metrics Explorer. Outros métodos, como como os painéis do Compute Engine, não exibem as métricas dos recursos que foram excluídos.
    2. Assegure-se de que período de exibição inclui o ambiente de execução do job. Para gráficos, certifique-se também de que resolução do gráfico é apropriado para seus dados.
    3. Verifique se não há nenhum filtros que estão escondendo os dados.
  4. Se o problema persistir, consulte o Resolver problemas do Cloud Monitoring na documentação de observabilidade do Google Cloud.

Restrição violada para endereços IP externo da VM

Problema

O problema a seguir aparece Campo statusEvents para um job com falha:

Instance VM_NAME creation failed: Constraint constraints/compute.vmExternalIpAccess violated for project PROJECT_NUMBER.
Add instance VM_NAME to the constraint to use external IP with it.

Esse problema ocorre porque o projeto, a pasta ou a organização definiu o Restrição de política organizacional compute.vmExternalIpAccess para que apenas VMs na lista de permissões possam usar endereços IP externo.

Solução

Para resolver o problema, recrie o job e realize uma das seguintes ações:

Restrição violada para imagens confiáveis

Problema

O problema a seguir aparece Campo statusEvents para um job com falha:

Instance VM_NAME creation failed: Constraint constraints/compute.trustedImageProjects violated for project PROJECT_ID. Use of images from project batch-custom-image is prohibited.

Solução

Esse problema ocorre porque seu projeto definiu o Restrição de política de imagens confiáveis (compute.trustedImageProjects) de modo que as imagens do Batch, que estão na batch-custom-image projeto de imagens não são permitidos.

Para resolver o problema, realize pelo menos uma das seguintes ações:

Falha no job ao usar um modelo de instância

Problema

O problema a seguir aparece Campo statusEvents para um job com falha que usa um modelo de instância:

INVALID_FIELD_VALUE,BACKEND_ERROR

Isso ocorre devido a problemas pouco claros com o modelo de instância do job.

Solução

Para depurar o problema, faça o seguinte:

  1. Crie um MIG usando o modelo de instância e observar com mais detalhes se erros ocorrem.
  2. Opcional: para encontrar mais informações, consulte o operação de longa duração que está criando o MIG no console do Google Cloud.

    Acessar Operações do Compute Engine

Códigos de saída de falha na tarefa

Quando uma tarefa específica em um job falha, ela retorna um valor diferente de zero. código de saída. Dependendo de como você configurar campo ignoreExitStatus, uma tarefa com falha pode ou não causar a falha de um job.

Além dos códigos de saída definidos em um executável, um O Batch tem vários códigos de saída reservados, incluindo o seguintes códigos de saída.

Preempção da VM (50001)

Problema

O problema a seguir aparece Campo statusEvents para uma vaga:

Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Spot Preemption with exit code 50001.

Esse problema ocorre quando uma VM spot do job interrompido durante a execução.

Solução

Para resolver o problema, siga um destes procedimentos:

  • Tente executar a tarefa novamente usando novas tentativas automatizadas de tarefas ou executar o job novamente de forma manual.
  • Para garantir que não haja preempção, use VMs com o modelo de provisionamento padrão.

Tempo limite de relatórios da VM (50002)

Problema

O problema a seguir aparece Campo statusEvents para uma vaga:

Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Batch no longer receives VM updates with exit code 50002.

Esse problema ocorre quando há um tempo limite no back-end que causou uma VM para o job não receber mais atualizações.

Solução

Para resolver esse problema, tente realizar a tarefa novamente usando novas tentativas automatizadas de tarefas ou executar o job novamente de forma manual.

VM reinicializada durante a execução (50003)

Problema

O problema a seguir aparece Campo statusEvents para uma vaga:

Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to VM is rebooted during task execution with exit code 50003.

Esse problema ocorre quando a VM de um job é reinicializada inesperadamente durante a execução.

Solução

Para resolver esse problema, tente realizar a tarefa novamente usando novas tentativas automatizadas de tarefas ou executar o job novamente de forma manual.

A VM e a tarefa não respondem (50004)

Problema

O problema a seguir aparece Campo statusEvents para uma vaga:

Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to tasks cannot be canceled with exit code 50004.

Esse problema ocorre quando uma tarefa atinge o limite de tempo sem resposta e não pode ser cancelada.

Solução

Para resolver esse problema, tente realizar a tarefa novamente usando novas tentativas automatizadas de tarefas ou executar o job novamente de forma manual.

A tarefa é executada acima do tempo de execução máximo (50005)

Problema

O problema a seguir aparece Campo statusEvents para uma vaga:

Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to task runs over the maximum runtime with exit code 50005.

Esse problema ocorre nos seguintes casos:

  • O tempo de execução de uma tarefa excede o limite de tempo especificado no Campo maxRunDuration
  • O tempo de execução de um executável excede o limite especificado no Campo timeout

Para identificar especificamente qual limite de tempo foi excedido, ver os registros do job e encontre um registro que mencione o código de saída 50005. Este campo de textPayload desse registro indica onde e quando o limite de tempo foi excedido.

Solução

Para resolver o problema, verifique o tempo total de execução exigido pelo a tarefa ou o executável que excedeu o limite de tempo. Em seguida, execute um destes procedimentos:

  • Se você só espera esse erro ocasionalmente, como em uma tarefa ou executável com um ambiente de execução inconsistente, tente recriar o job e configurar para automatizar novas tentativas de tarefas para tentar aumentar a taxa de sucesso.

  • Caso contrário, se a tarefa ou executável precisar de maneira consistente e intencional mais tempo para terminar a corrida do que o tempo limite atual permite, definir um tempo limite maior.

VM recriada durante a execução (50006)

Problema

O problema a seguir aparece Campo statusEvents para uma vaga:

Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to VM is recreated during task execution with exit code 50006.

Esse problema ocorre quando a VM de um job é recriada inesperadamente durante a execução.

Solução

Para resolver esse problema, tente realizar a tarefa novamente usando novas tentativas automatizadas de tarefas ou executar o job novamente de forma manual.

A seguir