Terminating control could be that signal, also environment shutdown could
also be that signal.

On Wed, May 15, 2019 at 7:19 AM Robert Bradshaw <rober...@google.com> wrote:

> The only signal we have is that the runner terminates the control
> channel. It might make sense to make this more explicit. (This'd be
> especially nice in batch, where we could (hypothetically at least)
> know we'll never run a given stage again.)
>
> On Wed, May 15, 2019 at 3:58 PM Robert Burke <rob...@frantil.com> wrote:
> >
> > What is the runner supposed to be doing to trigger the teardown of given
> bundle descriptors in an SDK harness?
> >
> > Is there a fn API call I'm not interpreting correctly that should
> reliably trigger DoFn teardown, or generally that bundle processing is done?
> >
> >
> >
> > On Wed, May 15, 2019, 6:51 AM Robert Bradshaw <rober...@google.com>
> wrote:
> >>
> >> This does bring up an interesting question though. Are runners
> >> violating (the intent of) the spec if they simply abandon/kill workers
> >> rather than gracefully bringing them down (e.g. so that these
> >> callbacks can be invoked)?
> >>
> >> On Tue, May 7, 2019 at 3:55 PM Michael Luckey <adude3...@gmail.com>
> wrote:
> >> >
> >> > Thanks Kenn and Reuven. Based on your feedback, I amended to the PR
> [1] implementing the missing calls to teardown.
> >> >
> >> > Best,
> >> >
> >> > michel
> >> >
> >> > [1] https://github.com/apache/beam/pull/8495
> >> >
> >> > On Tue, May 7, 2019 at 6:09 AM Kenneth Knowles <k...@apache.org>
> wrote:
> >> >>
> >> >>
> >> >>
> >> >> On Mon, May 6, 2019 at 2:19 PM Reuven Lax <re...@google.com> wrote:
> >> >>>
> >> >>>
> >> >>>
> >> >>> On Mon, May 6, 2019 at 2:06 PM Kenneth Knowles <k...@apache.org>
> wrote:
> >> >>>>
> >> >>>> The specification of TearDown is that it is best effort, certainly.
> >> >>>
> >> >>>
> >> >>> Though I believe the intent of that specification was that a runner
> will call it as long as the process itself has not crashed.
> >> >>
> >> >>
> >> >> Yea, exactly. Or more abstractly that a runner will call it unless
> it is impossible. If the hardware fails, a meteor strikes, etc, then
> teardown will not be called. But in normal operation, particularly when the
> user code throws a recoverable exception, it should be called.
> >> >>
> >> >> Kenn
> >> >>
> >> >>>
> >> >>>
> >> >>>>
> >> >>>> If your runner supports it, then the test is good to make sure
> there is not a regression. If your runner has partial support, that is
> within spec. But the idea of the spec is more than you might have such a
> failure that it is impossible to call the method, not simply never trying
> to call it.
> >> >>>>
> >> >>>> I think it seems to match what we do elsewhere to leave the test,
> add an annotation, make a note in the capability matrix about the
> limitation on ParDo.
> >> >>>>
> >> >>>> Kenn
> >> >>>>
> >> >>>> On Mon, May 6, 2019 at 5:45 AM Michael Luckey <adude3...@gmail.com>
> wrote:
> >> >>>>>
> >> >>>>> Hi,
> >> >>>>>
> >> >>>>> after stumbling upon [1] and trying to implement a fix [2],
> ParDoLifeCycleTest are failing for
> >> >>>>> direct runner, spark validatesRunnerBatch and flink
> validatesRunnerBatch fail as DoFns teardown is not invoked, if DoFns setup
> throw an exceptions.
> >> >>>>>
> >> >>>>> This seems to be in line with the specification [3], as this
> explicitly states that 'teardown might not be called if unnecessary as
> processed will be killed anyway'.
> >> >>>>>
> >> >>>>> No I am a bit lost on how to resolve this situation. Currently,
> we seem to have following options
> >> >>>>> - remove the test, although it seems valuable in different (e.g.
> streaming?) cases
> >> >>>>> - to satisfy the test implement the call to teardown in runners
> although it seems unnecessary
> >> >>>>> - add another annotation @CallsTeardownAfterFailingSetup,
> @UsesFullParDoLifeCycle or such (would love to get suggestions for better
> name here)
> >> >>>>> - ?
> >> >>>>>
> >> >>>>> Thoughts?
> >> >>>>>
> >> >>>>> Best,
> >> >>>>>
> >> >>>>> michel
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>> [1] https://issues.apache.org/jira/browse/BEAM-7197
> >> >>>>> [2] https://github.com/apache/beam/pull/8495
> >> >>>>> [3]
> https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/DoFn.java#L676-L680
>

Reply via email to