Problemas conhecidos

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página lista os problemas conhecidos do Cloud Composer. Para informações sobre correções de problemas, consulte as notas da versão.

Os rótulos de ambiente adicionados durante uma atualização não são totalmente propagados

Os rótulos de ambiente atualizados não são aplicados às VMs do Compute Engine. Como solução alternativa, esses rótulos podem ser aplicados manualmente.

A primeira execução de DAG para um arquivo DAG enviado tem várias tarefas com falha

Quando você faz o upload de um arquivo DAG, às vezes as primeiras tarefas da primeira execução do DAG falham com o erro Unable to read remote log.... Esse problema ocorre porque o arquivo DAG é sincronizado entre o bucket do ambiente, os workers do Airflow e os programadores do Airflow do ambiente. Se o programador receber o arquivo DAG e programá-lo para ser executado por um worker, e se o worker ainda não tiver o arquivo DAG, a execução da tarefa vai falhar.

Para mitigar esse problema, os ambientes com o Airflow 2 são configurados para realizar duas novas tentativas de uma tarefa com falha por padrão. Se uma tarefa falhar, ela será repetida duas vezes com intervalos de cinco minutos.

O Cloud Composer não é 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 ele não é vulnerável a esse exploit.

Às vezes, a interface do Airflow não recarrega um plug-in depois que ele é alterado.

Se um plug-in consistir em muitos arquivos que importam outros módulos, a interface do Airflow poderá não reconhecer que um plug-in precisa ser recarregado. Nesse caso, reinicie o servidor da Web do Airflow do seu ambiente.

Erro 504 ao acessar a interface do Airflow

Você pode receber o erro 504 Gateway Timeout ao acessar a interface do Airflow. Esse erro pode ter várias causas:

  • Problema de comunicação temporário. Nesse caso, tente acessar a interface do Airflow mais tarde. Também é possível reiniciar o servidor da Web do Airflow.

  • (Somente Cloud Composer 3) Problema de conectividade. Se a interface do Airflow estiver permanentemente indisponível e erros de tempo limite ou 504 forem gerados, verifique se o ambiente pode acessar *.composer.googleusercontent.com.

  • (Somente Cloud Composer 2) Problema de conectividade. Se a interface do Airflow estiver permanentemente indisponível e erros de tempo limite ou 504 forem gerados, verifique se o ambiente pode acessar *.composer.cloud.google.com. Se você usa o Google Access privado e envia tráfego por IPs virtuais private.googleapis.com ou o VPC Service Controls e envia tráfego por IPs virtuais restricted.googleapis.com, verifique se o Cloud DNS está configurado também para nomes de domínio *.composer.cloud.google.com.

  • O servidor da Web do Airflow não responde. Se o erro 504 persistir, mas você ainda conseguir acessar a interface do Airflow em determinados momentos, o servidor da Web do Airflow pode não responder porque está sobrecarregado. Tente aumentar os parâmetros de escala e desempenho do servidor da Web.

Erro 502 ao acessar a interface do Airflow

O erro 502 Internal server exception indica que a interface do Airflow não pode atender às solicitações recebidas. Esse erro pode ter várias causas:

  • Problema de comunicação temporário. Tente acessar a interface do Airflow mais tarde.

  • Falha ao iniciar o servidor da Web. Para começar, o servidor da Web exige que os arquivos de configuração sejam sincronizados primeiro. Verifique se há entradas de registro semelhantes a estas nos registros do servidor da Web: 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 esses erros aparecerem, verifique se os arquivos mencionados nas mensagens de erro ainda estão presentes no bucket do ambiente.

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

    1. Defina uma nova variável de ambiente. É possível usar qualquer nome e valor de variável.

    2. Modifique uma opção de configuração do Airflow. Você pode usar uma opção de configuração do Airflow que não existe.

Passar o cursor sobre a instância da tarefa na visualização em árvore gera um TypeError não detectado.

No Airflow 2, a visualização em árvore na interface do Airflow pode não funcionar corretamente quando um fuso horário diferente do padrão é usado. Como solução alternativa para esse problema, configure o fuso horário explicitamente na interface do Airflow.

Pastas vazias no programador e nos workers

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

Recomendação: ajuste seus DAGs para que eles ignorem essas pastas vazias.

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

Suporte ao Kerberos

O Cloud Composer não oferece suporte à configuração do Kerberos do Airflow.

Suporte a classes de computação no Cloud Composer 2 e 3

O Cloud Composer 3 e o Cloud Composer 2 oferecem suporte apenas à classe de computação de uso geral. Isso significa que não é possível executar pods que solicitam outras classes de computação (como Balanced ou Scale-Out).

A classe de uso geral permite a execução de pods que solicitam até 110 GB de memória e até 30 CPUs, conforme descrito em Solicitações máximas de classe de computação.

Se você quiser usar uma arquitetura baseada em ARM ou precisar de mais CPU e memória, use uma classe de computação diferente, que não é compatível com os clusters do Cloud Composer 3 e do Cloud Composer 2.

Recomendação: use GKEStartPodOperator para executar pods do Kubernetes em um cluster diferente que ofereça suporte à classe de computação selecionada. Se você executar pods personalizados que exigem uma classe de computação diferente, eles também precisarão ser executados em um 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 o banco de dados do Airflow. Com o 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 o banco de dados do Airflow cresce.

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

Como solução alternativa, se você quiser usar o menor tamanho de disco do Cloud SQL, recrie os ambientes do Cloud Composer com snapshots.

A métrica de uso do disco do banco de dados não é reduzida após a remoção de registros do Cloud SQL.

Bancos de dados relacionais, como Postgres ou MySQL, não removem fisicamente as linhas quando elas são excluídas ou atualizadas. Em vez disso, ele as marca como "tuplas inválidas" 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 exclusão de registros.

Embora seja possível forçar o banco de dados a recuperar o espaço em disco não utilizado, essa é uma operação que consome recursos e, além disso, bloqueia o banco de dados, o que torna o Cloud Composer indisponível. Portanto, é recomendável usar os mecanismos de criação para recuperar o espaço não utilizado.

Acesso bloqueado: erro de autorização

Se esse problema afetar um usuário, a caixa de diálogo Acesso bloqueado: erro de autorização vai conter a mensagem Error 400: admin_policy_enforced.

Se a opção Controles de API > Apps de terceiros não configurados > Não permitir que os usuários acessem apps de terceiros estiver ativada no Google Workspace e o Apache Airflow no app Cloud Composer não for permitido explicitamente, os usuários não poderão acessar a interface do Airflow, a menos que permitam o aplicativo explicitamente.

Para permitir o acesso, siga as etapas em Permitir o acesso à interface do Airflow no Google Workspace.

Loop de login ao acessar a interface do Airflow

Esse problema pode ter as seguintes causas:

Os componentes do Airflow têm problemas ao se comunicar com outras partes da configuração do Cloud Composer

Em casos muito raros, a lentidão da comunicação com o servidor de metadados do Compute Engine pode fazer com que os componentes do Airflow não funcionem de maneira ideal. Por exemplo, o programador do Airflow pode ser reiniciado, as tarefas do Airflow podem precisar ser tentadas novamente ou o tempo de inicialização da tarefa pode ser maior.

Sintomas:

Os seguintes erros aparecem nos registros dos componentes do Airflow, como programadores, workers ou o servidor da Web:

Authentication failed using Compute Engine authentication due to unavailable metadata server

Compute Engine Metadata server unavailable on attempt 1 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 2 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 3 of 3. Reason: timed out

Solução:

Defina a seguinte variável de ambiente: GCE_METADATA_TIMEOUT=30.

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

No Cloud Composer 2 e no Cloud Composer 3, o servidor da Web do Airflow é um componente quase totalmente somente leitura, e o Cloud Composer não sincroniza a pasta data/ com esse componente.

Às vezes, você pode querer compartilhar arquivos comuns entre todos os componentes do Airflow, incluindo o servidor da Web do Airflow.

Solução:

  • Encapsule os arquivos a serem compartilhados com o servidor da Web em um módulo PYPI e instale-o como um pacote PYPI normal. Depois que o módulo PYPI é instalado no ambiente, os arquivos são adicionados às imagens dos componentes do Airflow e ficam disponíveis para eles.

  • Adicione arquivos à pasta plugins/. Essa pasta é sincronizada com o servidor da Web do Airflow.

Tempos de análise de DAG não contínuos e diagramas de tamanho de pacotes de DAG no monitoramento

Tempos de análise de DAG não contínuos e diagramas de tamanho do pacote de DAG no painel de monitoramento indicam problemas com tempos de análise de DAG longos (mais de cinco minutos).

Tempos de análise de DAG do Airflow e gráficos de tamanho do pacote de DAG mostrando 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 repositório do DAG (clique para ampliar)

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

Os registros de tarefas aparecem com atraso

Sintoma:

  • No Cloud Composer 3, os registros de tarefas do Airflow não aparecem imediatamente e são atrasados por alguns minutos.

Causa:

Se o ambiente executar um grande número de tarefas ao mesmo tempo, os registros de tarefas poderão ser atrasados porque o tamanho da infraestrutura do ambiente não é suficiente para processar todos os registros com rapidez suficiente.

Soluções:

  • Considere aumentar o tamanho da infraestrutura do ambiente para melhorar a performance.
  • Distribua as execuções de DAG ao longo do tempo para que as tarefas não sejam executadas ao mesmo tempo.

Aumento dos tempos de inicialização para KubernetesPodOperator e KubernetesExecutor

Os pods criados com o KubernetesPodOperator e as tarefas executadas com o KubernetesExecutor têm tempos de inicialização maiores. A equipe do Cloud Composer está trabalhando em uma solução e vai anunciar quando o problema for resolvido.

Alternativas:

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

O ambiente está no estado ERROR depois que a conta de faturamento do projeto foi excluída ou desativada ou a API Cloud Composer foi desativada

Os ambientes do Cloud Composer afetados por esses problemas não podem ser recuperados:

  • Depois que a conta de faturamento do projeto for excluída ou desativada, mesmo que outra conta seja vinculada mais tarde.
  • Depois que a API Cloud Composer for desativada no projeto, mesmo que ela seja ativada mais tarde.

Faça o seguinte para resolver o problema:

  • Você ainda pode acessar os dados armazenados nos buckets do seu ambiente, mas os ambientes em si não podem mais ser usados. Você pode criar um novo ambiente do Cloud Composer e transferir seus DAGs e dados.

  • Se você quiser realizar qualquer uma das operações que tornam seus ambientes irrecuperáveis, faça backup dos dados, por exemplo, criando um snapshot do ambiente. Dessa forma, é possível criar outro ambiente e transferir os dados dele carregando esse snapshot.

A seguir