Skip to content

[Prism] Watermark deadlock when unbounded source is initially empty #39446

Description

@Abacn

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

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Prism Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions