kennknowles commented on a change in pull request #13893:
URL: https://github.com/apache/beam/pull/13893#discussion_r572303946
##########
File path:
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/control/ProcessBundleHandler.java
##########
@@ -705,6 +718,17 @@ void reset() throws Exception {
resetFunction.run();
}
}
+
+ void shutdown() {
+ for (ThrowingRunnable tearDownFunction : getTearDownFunctions()) {
+ LOG.debug("Tearing down function {}", tearDownFunction);
+ try {
+ tearDownFunction.run();
+ } catch (Exception e) {
+ LOG.error("Failed to call teardown function: {}", e);
Review comment:
But that is actually a tagent. The important thing is that users can
understand how their `DoFn` will be invoked without reasoning about the
portability protocols. Like "during a failure, `@Teardown` will be called if it
is possible, but not always". We need a spec about what happens when any of the
methods fail. I think like "Since `@TearDown` executes independent of any data
processing, if `@TearDown` fails, the pipeline is permitted to continue but
resources will not be collected."
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]