You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Ying Xu (Jira)" <ji...@apache.org> on 2019/12/17 17:45:00 UTC

[jira] [Commented] (FLINK-15301) Flink Kinesis AsyncRecordEmitter needs to handle unchecked exception gracefully

    [ https://issues.apache.org/jira/browse/FLINK-15301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16998418#comment-16998418 ] 

Ying Xu commented on FLINK-15301:
---------------------------------

Example stacktrace
{code:java}
05:39:32.393 INFO o.a.f.f.s.c.w.S3Committer - Committing f/event_name=dynamic_translation_missing/ds=2019-12-15/hr=05/part-450-96064 with MPU ID y5e5QQ3kTzi7TkuEirSdr.enmM7GaIkIxvjVRqIT0kXaMSPzhVQKLRu3vQuzZ.oziFr2vuXXGXEThkpsOiCCV17UQxGm5AtgDqslw33uc1aTHyIKFQXwNRpQCZCttZ_AxcLbltEyjd8m7ea15Bhf.A--
 Exception in thread "recordEmitter-Source: json-events_source -> json-events_flatten_json_to_persistermessage -> json-events_local_record_count (188/512)" org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException: Could not forward element to next operator
 {{ at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.pushToOperator(OperatorChain.java:596)}}
 {{ at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.collect(OperatorChain.java:554)}}
 {{ at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.collect(OperatorChain.java:534)}}
 {{ at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(AbstractStreamOperator.java:718)}}
 {{ at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(AbstractStreamOperator.java:696)}}
 {{ at org.apache.flink.streaming.api.operators.StreamSourceContexts$ManualWatermarkContext.processAndCollectWithTimestamp(StreamSourceContexts.java:310)}}
 {{ at org.apache.flink.streaming.api.operators.StreamSourceContexts$WatermarkContext.collectWithTimestamp(StreamSourceContexts.java:409)}}
 {{ at org.apache.flink.streaming.connectors.kinesis.internals.KinesisDataFetcher.emitRecordAndUpdateState(KinesisDataFetcher.java:772)}}
 {{ at org.apache.flink.streaming.connectors.kinesis.internals.KinesisDataFetcher.access$000(KinesisDataFetcher.java:91)}}
 {{ at org.apache.flink.streaming.connectors.kinesis.internals.KinesisDataFetcher$AsyncKinesisRecordEmitter.emit(KinesisDataFetcher.java:272)}}
 {{ at org.apache.flink.streaming.connectors.kinesis.internals.KinesisDataFetcher$AsyncKinesisRecordEmitter.emit(KinesisDataFetcher.java:260)}}
 {{ at org.apache.flink.streaming.connectors.kinesis.util.RecordEmitter.run(RecordEmitter.java:230)}}
 {{ at java.lang.Thread.run(Thread.java:748)
...{code}

> Flink Kinesis AsyncRecordEmitter needs to handle unchecked exception gracefully
> -------------------------------------------------------------------------------
>
>                 Key: FLINK-15301
>                 URL: https://issues.apache.org/jira/browse/FLINK-15301
>             Project: Flink
>          Issue Type: Improvement
>          Components: Connectors / Kinesis
>            Reporter: Ying Xu
>            Priority: Major
>
> Currently, any runTime exception encountered inside the `AsyncRecordEmitter.emitRecordAndUpdateState()` function could cause the thread to exit silently. Flink job would continue to run, but the stopped record emitter would subsequently cause Kinesis data consumption to stall. 
>  
> The AsyncRecordEmitter need to catch unchecked exception, log errors, and perhaps trigger job restart subsequently. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)