Flink 1.15 非同期シンクデッドロック - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Flink 1.15 非同期シンクデッドロック

Apache Flink 実装 AsyncSink インターフェイスの AWS コネクタには既知の問題があります。これは、以下のコネクターで Flink 1.15 を使用するアプリケーションに影響します。

  • 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

  • Flink SQL/テーブルAPI/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

影響を受けるアプリケーションには次の症状があります。

  • Flink ジョブの RUNNING 状態は変わりませんが、データは処理されていません。

  • ジョブは再起動されません。

  • チェックポイントがタイムアウトしています。

この問題は、 AWS SDK のバグが原因で、非同期 HTTP クライアントの使用時に発信者に特定のエラーが発生しないことが原因です。その結果、シンクはチェックポイントフラッシュ操作中に処理中のリクエストが完了するまで無期限に待機することになります。

この問題は、バージョン 2.20.144 以降の AWS SDK で修正されました。

以下に、影響を受けるコネクタを更新してアプリケーションで新しいバージョンの AWS SDK を使用する手順を示します。