This looks like a bug to me. On Thu, Mar 28, 2019 at 2:52 PM Amar Pai <a...@lyft.com> wrote:
> Hi, > > I'm running into some unexpected behavior when trying to unit test a > stateful DoFn that uses watermark timers as well as bag state. I'm > following the example here: > https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/userstate_test.py#L333 > > Expected behavior: > When using TestStream, if a stateful DoFn adds value 'foo' to BagState > then sets two watermark timers t1 and t2, where t1 clears the bag state and > t2 reads from bag state and emits the contents, if t1.time < t2.time then > nothing should get emitted when the TestPipeline is run. (bag state should > be cleared by timer at t1 before it is read from by timer at t2) > > Actual behavior: > For the scenario described above, results get emitted despite t1.time > being less than t2.time. > I've created a gist with a demonstration of the problem: > https://gist.github.com/jcruelty/3bf5ce5865110372a2d1650b1421cde1 > > > Is this a bug? Would appreciate your thoughts. > cheers > > Amar >