[ https://issues.apache.org/jira/browse/BEAM-1712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15923326#comment-15923326 ]
Eugene Kirpichov commented on BEAM-1712: ---------------------------------------- An optimistic interpretation is probably that Flink runner in batch mode simply waits in .run(). Not sure about streaming mode then. > TestPipeline.run doesn't actually waitUntilFinish > ------------------------------------------------- > > Key: BEAM-1712 > URL: https://issues.apache.org/jira/browse/BEAM-1712 > Project: Beam > Issue Type: Bug > Components: runner-flink, sdk-java-core, testing > Reporter: Eugene Kirpichov > Assignee: Stas Levin > Priority: Blocker > > https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestPipeline.java#L124 > it calls waitUntilFinish() only if > 1) run wasn't called > 2) enableAutoRunIfMissing is true. > However in practice both of these are false. > 1) run() is, in most tests, called. So effectively if you call .run() at all, > then this thing doesn't call waitUntilFinish(). > 2) enableAutoRunIfMissing() is set to true only via > TestPipeline.enableAutoRunIfMissing(), which is called only from its own unit > test. > This means that, for all tests that use TestPipeline - if the test waits > until finish, it's only because of the grace of the particular runner. Which > is like really bad. > We're lucky because in practice TestDataflowRunner, TestApexRunner, > TestSparkRunner in run() call themselves waitUntilFinish(). > However, TestFlinkRunner doesn't - i.e. there currently might be tests that > actually fail in Flink runner, undetected. > The proper fix to this is to fix TestPipeline to always waitUntilFinish(). > Currently testing a quick-fix in https://github.com/apache/beam/pull/2240 to > make sure Flink is safe. -- This message was sent by Atlassian JIRA (v6.3.15#6346)