Hi all,
I’ve got a streaming topology with an iteration, and a RichAsyncFunction in that iteration. When the iteration terminates due to no activity, I see this message in the logs: 17/10/04 16:01:36 DEBUG async.Emitter:91 - Emitter thread got interrupted. This indicates that the emitter should shut down.
java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048) at org.apache.flink.streaming.api.operators.async.queue.UnorderedStreamElementQueue.peekBlockingly(UnorderedStreamElementQueue.java:147) at org.apache.flink.streaming.api.operators.async.Emitter.run(Emitter.java:82) at java.lang.Thread.run(Thread.java:748) I read through https://issues.apache.org/jira/browse/FLINK-5638, which makes me wonder if there’s a different but related issue involving an async function in an iteration. Or perhaps I need to do something in my RichAsyncFunction to avoid this situation? Or is this expected and just the way things are currently? Just FYI, my topology is here: https://s3.amazonaws.com/su-public/flink-crawler+topology.pdf Thanks, — Ken -------------------------- Ken Krugler +1 530-210-6378 http://www.scaleunlimited.com custom big data solutions & training Hadoop, Cascading, Cassandra & Solr |
Hi Ken, I don't have much experience with streaming iterations.2017-10-05 1:33 GMT+02:00 Ken Krugler <[hidden email]>:
|
Hi,
In my understanding this is the expected behaviour of the code. The only way to shut down the Emitter is via an interrupt because it is otherwise blocking on the queue. If the Emitter had been interrupted while the operator is still running it would have gone down a different code path: https://github.com/apache/flink/blob/40cec17f4303b43bbf65d8be542f0646eada57e8/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/async/Emitter.java#L89 Did you see any other faulty behaviour or only this log message. Best, Aljoscha
|
Hi Aljoscha,
Thanks for responding.
I’d suggest changing the logging call to not include the exception, as dumping out the stack trace in the log implies there’s a problem somewhere. And changing the message to something like "Emitter thread got interrupted, shutting it down” would make it clearer it’s not an unexpected situation. Thanks, — Ken
-------------------------- Ken Krugler +1 530-210-6378 http://www.scaleunlimited.com custom big data solutions & training Hadoop, Cascading, Cassandra & Solr |
Just FYI: I pushed a change that changes the message and removes the stack trace (and the exception).
|
Free forum by Nabble | Edit this page |