What happened?
When an unbounded source starts empty and returns ProcessContinuation.resume(), Prism re-queues the residual token as a pending element with timestamp TIMESTAMP_MIN_VALUE (1970-01-01). This caps the stage's output watermark at 1970-01-01 and prevents watermark advancement. Consequently, Prism's scheduler (bundleReady()) permanently refuses to execute downstream stateful transforms, causing streaming pipelines to freeze indefinitely even after new data arrives in the source. Resolving the existing TODO
|
// TODO sort out pending element watermark holds for process continuation residuals. |
should fix this deadlock.
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components
What happened?
When an unbounded source starts empty and returns ProcessContinuation.resume(), Prism re-queues the residual token as a pending element with timestamp TIMESTAMP_MIN_VALUE (1970-01-01). This caps the stage's output watermark at 1970-01-01 and prevents watermark advancement. Consequently, Prism's scheduler (bundleReady()) permanently refuses to execute downstream stateful transforms, causing streaming pipelines to freeze indefinitely even after new data arrives in the source. Resolving the existing TODO
beam/sdks/go/pkg/beam/runners/prism/internal/engine/elementmanager.go
Line 926 in f1d9c3e
should fix this deadlock.
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components