[ https://issues.apache.org/jira/browse/FLINK-21228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Danny Cranmer updated FLINK-21228: ---------------------------------- Description: *Background* Kinesis sink failed and resulted in: - Indefinite backpressure being applied - Exception never thrown causing job to fail Application running with: {code:java} flinkKinesisProducer.setQueueLimit(1); flinkKinesisProducer.setFailOnError(true); {code} - {{KinesisProducer}} is waiting for queue to empty before sending the next record ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L303]) - KPL ran out of memory, which raised an error, however this is processed async ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L275]) - {{KinesisProducer}} would have rethrown the error and restarted the job, however operator stuck in an infinite loop enforcing the queue limit (which never clears) ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L306]) *Proposal* - {{checkAndPropagateAsyncError()}} while enforcing queue limit in {{enforceQueueLimit()}} to break deadlock was: *Background* Application sink failed and resulted in: - Indefinite backpressure being applied - Exception never thrown causing job to fail Application running with: {code:java} flinkKinesisProducer.setQueueLimit(1); flinkKinesisProducer.setFailOnError(true); {code} - {{KinesisProducer}} is waiting for queue to empty before sending the next record ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L303]) - KPL ran out of memory, which raised an error, however this is processed async ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L275]) - {{KinesisProducer}} would have rethrown the error and restarted the job, however operator stuck in an infinite loop enforcing the queue limit (which never clears) ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L306]) *Proposal* - {{checkAndPropagateAsyncError()}} while enforcing queue limit in {{enforceQueueLimit()}} to break deadlock > [Kinesis][Producer] Deadlock in KinesisProducer > ----------------------------------------------- > > Key: FLINK-21228 > URL: https://issues.apache.org/jira/browse/FLINK-21228 > Project: Flink > Issue Type: Bug > Components: Connectors / Kinesis > Affects Versions: 1.12.1 > Reporter: Danny Cranmer > Priority: Major > > *Background* > Kinesis sink failed and resulted in: > - Indefinite backpressure being applied > - Exception never thrown causing job to fail > Application running with: > {code:java} > flinkKinesisProducer.setQueueLimit(1); > flinkKinesisProducer.setFailOnError(true); > {code} > - {{KinesisProducer}} is waiting for queue to empty before sending the next > record > ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L303]) > - KPL ran out of memory, which raised an error, however this is processed > async > ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L275]) > - {{KinesisProducer}} would have rethrown the error and restarted the job, > however operator stuck in an infinite loop enforcing the queue limit (which > never clears) > ([code|https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/FlinkKinesisProducer.java#L306]) > *Proposal* > - {{checkAndPropagateAsyncError()}} while enforcing queue limit in > {{enforceQueueLimit()}} to break deadlock -- This message was sent by Atlassian Jira (v8.3.4#803005)