On Wed, Jun 8, 2016 at 10:39 AM, Ben Chambers <bchamb...@google.com.invalid> wrote:
> > To clarify -- this case is actually not allowed by the beam model. The > guarantee is that either a bundle is successfully completed (startBundle, > processElement*, finishBundle, commit) or not. If it isn't, then the bundle > is reprocessed. So, if a `DoFn` instance builds up any state while > processing a bundle and a failure happens at any point prior to the commit, > it will be retried. Even though the actual state in the first `DoFn` was > lost, the second attempt will build up the same state. Makes sense. I missed the fact that finshBundle(Context) could emit more records, which affects the pipeline state.