Deadlock do coletor assíncrono Flink 1.15 - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Deadlock do coletor assíncrono Flink 1.15

Há um problema conhecido com AWS conectores para a interface de implementação do Apache Flink. AsyncSink Isso afeta os aplicativos que usam o Flink 1.15 com os seguintes conectores:

  • Para aplicativos Java:

    • KinesisStreamsSink – org.apache.flink:flink-connector-kinesis

    • KinesisStreamsSink – org.apache.flink:flink-connector-aws-kinesis-streams

    • KinesisFirehoseSink – org.apache.flink:flink-connector-aws-kinesis-firehose

    • DynamoDbSink – org.apache.flink:flink-connector-dynamodb

  • Aplicativos SQL API Flink/Tabel/Python:

    • kinesis – org.apache.flink:flink-sql-connector-kinesis

    • kinesis – org.apache.flink:flink-sql-connector-aws-kinesis-streams

    • firehose – org.apache.flink:flink-sql-connector-aws-kinesis-firehose

    • dynamodb – org.apache.flink:flink-sql-connector-dynamodb

Os aplicativos afetados apresentarão os seguintes sintomas:

  • O trabalho do Flink está no estado de RUNNING, mas não está processando dados;

  • Não há reinicializações do trabalho;

  • Os pontos de controle estão atingindo o tempo limite.

O problema é causado por um bug que faz AWS SDK com que certos erros não sejam exibidos ao chamador ao usar o cliente HTTP assíncrono. Isso faz com que o coletor espere indefinidamente pela conclusão de uma “solicitação em trânsito” durante uma operação de descarga no ponto de controle.

Esse problema foi corrigido a AWS SDK partir da versão 2.20.144.

A seguir estão as instruções sobre como atualizar os conectores afetados para usar a nova versão do AWS SDK em seus aplicativos: