[ https://issues.apache.org/jira/browse/BEAM-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Romain Manni-Bucau updated BEAM-3409: ------------------------------------- Priority: Blocker (was: Minor) > Unexpected behavior of DoFn teardown method running in unit tests > ------------------------------------------------------------------ > > Key: BEAM-3409 > URL: https://issues.apache.org/jira/browse/BEAM-3409 > Project: Beam > Issue Type: Bug > Components: runner-direct > Affects Versions: 2.3.0 > Reporter: Alexey Romanenko > Assignee: Romain Manni-Bucau > Priority: Blocker > Labels: test > Fix For: 2.4.0 > > Time Spent: 1h > Remaining Estimate: 0h > > Writing a unit test, I found out a strange behaviour of Teardown method of > DoFn implementation when I run this method in unit tests using TestPipeline. > To be more precise, it doesn’t wait until teardown() method will be finished, > it just exits from this method after about 1 sec (on my machine) even if it > should take longer (very simple example - running infinite loop inside this > method or put thread in sleep). In the same time, when I run the same code > from main() with ordinary Pipeline and direct runner, then it’s ok and it > works as expected - teardown() method will be performed completely despite > how much time it will take. > I created two test cases to reproduce this issue - the first one to run with > main() and the second one to run with junit. They use the same implementation > of DoFn (class LongTearDownFn) and expects that teardown method will be > running at least for SLEEP_TIME ms. In case of running as junit test it's not > a case (see output log). > - run with main() > https://github.com/aromanenko-dev/beam-samples/blob/master/runners-tests/src/main/java/TearDown.java > - run with junit > https://github.com/aromanenko-dev/beam-samples/blob/master/runners-tests/src/test/java/TearDownTest.java -- This message was sent by Atlassian JIRA (v7.6.3#76005)