Problemas conhecidos

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página lista problemas conhecidos do Cloud Composer. Para informações sobre as correções de problemas, consulte as notas de lançamento.

A primeira execução do DAG para um ficheiro DAG carregado tem várias tarefas com falhas

Quando carrega um ficheiro DAG, por vezes, as primeiras tarefas da primeira execução do DAG falham com o erro Unable to read remote log.... Este problema ocorre porque o ficheiro DAG está sincronizado entre o contentor do seu ambiente, os trabalhadores do Airflow e os programadores do Airflow do seu ambiente. Se o agendador receber o ficheiro DAG e agendá-lo para execução por um trabalhador e, se o trabalhador ainda não tiver o ficheiro DAG, a execução da tarefa falha.

Para mitigar este problema, os ambientes com o Airflow 2 estão configurados para fazer duas novas tentativas para uma tarefa com falha por predefinição. Se uma tarefa falhar, é repetida duas vezes com intervalos de 5 minutos.

O Cloud Composer não deve ser afetado pela vulnerabilidade do Apache Log4j 2 (CVE-2021-44228)

Em resposta à vulnerabilidade do Apache Log4j 2 (CVE-2021-44228), o Cloud Composer realizou uma investigação detalhada e acreditamos que o Cloud Composer não é vulnerável a esta exploração.

Por vezes, a IU do Airflow pode não recarregar um plug-in depois de ser alterado

Se um plug-in consistir em muitos ficheiros que importam outros módulos, a IU do Airflow pode não conseguir reconhecer o facto de que um plug-in deve ser recarregado. Nesse caso, reinicie o servidor Web do Airflow do seu ambiente.

Erro 504 ao aceder à IU do Airflow

Pode receber o erro 504 Gateway Timeout ao aceder à IU do Airflow. Este erro pode ter várias causas:

  • Problema de comunicação temporário. Neste caso, tente aceder à IU do Airflow mais tarde. Também pode reiniciar o servidor Web do Airflow.

  • (Apenas no Cloud Composer 3) Problema de conetividade. Se a IU do Airflow estiver permanentemente indisponível e forem gerados erros de tempo limite ou 504, certifique-se de que o seu ambiente consegue aceder a *.composer.googleusercontent.com.

  • (Apenas no Cloud Composer 2) Problema de conetividade. Se a IU do Airflow estiver permanentemente indisponível e forem gerados erros de tempo limite ou 504, certifique-se de que o seu ambiente consegue aceder a *.composer.cloud.google.com. Se usar o acesso privado à Google e enviar tráfego através de private.googleapis.com IPs virtuais, ou os VPC Service Controls e enviar tráfego através de restricted.googleapis.com IPs virtuais, certifique-se de que o Cloud DNS também está configurado para *.composer.cloud.google.com nomes de domínio.

  • Servidor Web do Airflow sem resposta. Se o erro 504 persistir, mas ainda conseguir aceder à IU do Airflow em determinados momentos, o servidor Web do Airflow pode não estar a responder porque está sobrecarregado. Tente aumentar os parâmetros de escala e desempenho do servidor Web.

Erro 502 ao aceder à IU do Airflow

O erro 502 Internal server exception indica que a IU do Airflow não consegue processar pedidos recebidos. Este erro pode ter várias causas:

  • Problema de comunicação temporário. Tente aceder à IU do Airflow mais tarde.

  • Falha ao iniciar o servidor Web. Para começar, o servidor Web requer que os ficheiros de configuração sejam sincronizados primeiro. Verifique se existem entradas de registo nos registos do servidor Web semelhantes a: GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp ou GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp. Se vir estes erros, verifique se os ficheiros mencionados nas mensagens de erro ainda estão presentes no contentor do ambiente.

    Em caso de remoção acidental (por exemplo, porque foi configurada uma política de retenção), pode restaurá-los:

    1. Defina uma nova variável de ambiente no seu ambiente. Pode usar qualquer nome de variável e valor.

    2. Substitua uma opção de configuração do Airflow. Pode usar uma opção de configuração do Airflow inexistente.

Passar o cursor do rato sobre a instância da tarefa na vista de árvore gera um TypeError não capturado

No Airflow 2, a vista de árvore na IU do Airflow pode, por vezes, não funcionar corretamente quando é usado um fuso horário não predefinido. Como alternativa para este problema, configure o fuso horário explicitamente na IU do Airflow.

Pastas vazias no Scheduler e nos trabalhadores

O Cloud Composer não remove ativamente pastas vazias dos workers e dos programadores do Airflow. Essas entidades podem ser criadas como resultado do processo de sincronização do contentor do ambiente quando estas pastas existiam no contentor e foram removidas posteriormente.

Recomendação: ajuste os DAGs para que estejam preparados para ignorar essas pastas vazias.

Essas entidades são removidas dos armazenamentos locais dos programadores e dos trabalhadores do Airflow quando estes componentes são reiniciados (por exemplo, como resultado da redução da escala ou das operações de manutenção no cluster do seu ambiente).

Suporte para Kerberos

O Cloud Composer não suporta a configuração do Kerberos do Airflow.

Compatibilidade com classes de computação no Cloud Composer 2 e no Cloud Composer 3

O Cloud Composer 3 e o Cloud Composer 2 suportam apenas a classe de computação de uso geral. Isto significa que não é possível executar Pods que solicitem outras classes de computação (como Balanced ou Scale-Out).

A classe de uso geral permite a execução de pods que pedem até 110 GB de memória e até 30 CPUs (conforme descrito em Pedidos máximos da classe de computação).

Se quiser usar a arquitetura baseada em ARM ou precisar de mais CPU e memória, tem de usar uma classe de computação diferente, que não é suportada nos clusters do Cloud Composer 3 e do Cloud Composer 2.

Recomendação: use GKEStartPodOperator para executar pods do Kubernetes num cluster diferente que suporte a classe de computação selecionada. Se executar pods personalizados que exijam uma classe de computação diferente, estes também têm de ser executados num cluster que não seja do Cloud Composer.

Não é possível reduzir o armazenamento do Cloud SQL

O Cloud Composer usa o Cloud SQL para executar a base de dados do Airflow. Ao longo do tempo, o armazenamento em disco da instância do Cloud SQL pode aumentar porque o disco é dimensionado para se ajustar aos dados armazenados pelas operações do Cloud SQL quando a base de dados do Airflow aumenta.

Não é possível reduzir o tamanho do disco do Cloud SQL.

Como solução alternativa, se quiser usar o menor tamanho do disco do Cloud SQL, pode recriar ambientes do Cloud Composer com cópias instantâneas.

A métrica de utilização do disco da base de dados não diminui após a remoção de registos do Cloud SQL

As bases de dados relacionais, como o Postgres ou o MySQL, não removem fisicamente as linhas quando são eliminadas ou atualizadas. Em vez disso, marca-as como "tuplos mortos" para manter a consistência dos dados e evitar o bloqueio de transações simultâneas.

O MySQL e o Postgres implementam mecanismos de recuperação de espaço após a eliminação de registos.

Embora seja possível forçar a base de dados a recuperar espaço em disco não utilizado, esta é uma operação que consome muitos recursos e que, além disso, bloqueia a base de dados, tornando o Cloud Composer indisponível. Por isso, é recomendável usar os mecanismos de criação para reclamar o espaço não usado.

Acesso bloqueado: erro de autorização

Se este problema afetar um utilizador, a caixa de diálogo Acesso bloqueado: erro de autorização contém a mensagem Error 400: admin_policy_enforced.

Se a opção Controlos de API > Apps de terceiros não configuradas > Não permitir que os utilizadores acedam a apps de terceiros estiver ativada no Google Workspace e a app Apache Airflow no Cloud Composer não estiver explicitamente permitida, os utilizadores não podem aceder à IU do Airflow, a menos que permitam explicitamente a aplicação.

Para permitir o acesso, siga os passos indicados no artigo Permita o acesso à IU do Airflow no Google Workspace.

Repetição de início de sessão ao aceder à IU do Airflow

Este problema pode ter as seguintes causas:

A pasta /data não está disponível no servidor Web do Airflow

No Cloud Composer 2 e no Cloud Composer 3, o servidor Web do Airflow destina-se a ser um componente maioritariamente só de leitura, e o Cloud Composer não sincroniza a pasta data/ com este componente.

Por vezes, pode querer partilhar ficheiros comuns entre todos os componentes do Airflow, incluindo o servidor Web do Airflow.

Solução:

  • Inclua os ficheiros a partilhar com o servidor Web num módulo PYPI e instale-o como um pacote PYPI normal. Depois de o módulo PYPI ser instalado no ambiente, os ficheiros são adicionados às imagens dos componentes do Airflow e ficam disponíveis para estes.

  • Adicione ficheiros à pasta plugins/. Esta pasta está sincronizada com o servidor Web do Airflow.

Tempos de análise de DAGs não contínuos e diagramas de tamanho do contentor de DAGs na monitorização

Os tempos de análise de DAG não contínuos e os diagramas de tamanho do contentor de DAG no painel de controlo de monitorização indicam problemas com tempos de análise de DAG longos (mais de 5 minutos).

Gráficos de tempos de análise de DAGs do Airflow e tamanho do conjunto de DAGs a mostrar uma série de intervalos não contínuos
Figura 1. Tempos de análise de DAG não contínuos e gráficos de tamanho do contentor de DAG (clique para aumentar)

Solução: Recomendamos que mantenha o tempo de análise do DAG total abaixo de 5 minutos. Para reduzir o tempo de análise de DAG, siga as diretrizes de escrita de DAG.

Os registos de tarefas aparecem com atrasos

Sintoma:

  • No Cloud Composer 3, os registos de tarefas do Airflow não aparecem imediatamente e são atrasados durante alguns minutos.
  • Pode encontrar mensagens Logs not found for Cloud Logging filter nos registos do Airflow

Causa:

Se o seu ambiente executar um grande número de tarefas em simultâneo, os registos de tarefas podem sofrer um atraso porque o tamanho da infraestrutura do ambiente não é suficiente para processar todos os registos com rapidez suficiente.

Soluções:

  • Pondere aumentar o tamanho da infraestrutura do ambiente para aumentar o desempenho.
  • Distribuir execuções de DAG ao longo do tempo para que as tarefas não sejam executadas ao mesmo tempo.

Aumento dos tempos de arranque para KubernetesPodOperator e KubernetesExecutor

Os pods criados com o KubernetesPodOperator e as tarefas executadas com o KubernetesExecutor registam tempos de início mais longos. A equipa do Cloud Composer está a trabalhar numa solução e vai anunciar quando o problema estiver resolvido.

Soluções alternativas:

  • Inicie pods com mais CPU.
  • Se possível, otimize as imagens (menos camadas, tamanho mais pequeno).

O ambiente está no estado ERROR depois de a conta de faturação do projeto ter sido eliminada ou desativada, ou a API Cloud Composer ter sido desativada

Os ambientes do Cloud Composer afetados por estes problemas são irrecuperáveis:

  • Depois de a conta de faturação do projeto ter sido eliminada ou desativada, mesmo que outra conta tenha sido associada posteriormente.
  • Depois de a API Cloud Composer ter sido desativada no projeto, mesmo que tenha sido ativada posteriormente.

Pode fazer o seguinte para resolver o problema:

  • Continua a poder aceder aos dados armazenados nos contentores do seu ambiente, mas os próprios ambientes já não são utilizáveis. Pode criar um novo ambiente do Cloud Composer e, em seguida, transferir os seus DAGs e dados.

  • Se quiser realizar qualquer uma das operações que tornam os seus ambientes não recuperáveis, certifique-se de que faz uma cópia de segurança dos seus dados, por exemplo, criando uma captura instantânea de um ambiente. Desta forma, pode criar outro ambiente e transferir os respetivos dados carregando esta imagem instantânea.

Os registos das tarefas do Airflow não são recolhidos se [core]execute_tasks_new_python_interpreter estiver definido como True

O Cloud Composer não recolhe registos de tarefas do Airflow se a opção de configuração do Airflow estiver definida como True.[core]execute_tasks_new_python_interpreter

Possível solução:

  • Remova a substituição desta opção de configuração ou defina o valor como False.

Erro ao remover a associação de rede quando um ambiente é eliminado

Se vários ambientes que partilham a mesma ligação de rede forem eliminados ao mesmo tempo, algumas operações de eliminação falham com um erro.

Sintomas:

É gerado o seguinte erro:

Got error while removing Network Attachment: <error code>

O código de erro comunicado pode ser Bad request: <resource> is not ready ou Precondition failed: Invalid fingerprint.

Possíveis soluções alternativas:

  • Elimine os ambientes que usam o mesmo anexo de rede um a um.

  • Desative a ligação a uma rede VPC para os seus ambientes antes de os eliminar. Recomendamos esta solução alternativa para a eliminação automática de ambientes.

O que se segue?