stankiewicz opened a new pull request, #38230:
URL: https://github.com/apache/beam/pull/38230
## Description
This PR refactors the metadata propagation logic in `ReduceFnRunner` to
support extensible metadata.
Previously, metadata tracking (specifically `causedByDrain`) was not stored
in state at all during execution in `ReduceFnRunner`, which caused metatada
loss failures when firing timers or merging panes. This PR fixes that by
introducing a unified state map for element metadata.
To make it easier to add future payloads (such as OpenTelemetry context maps
or CDC insert/update markers) without modifying method signatures, this change
groups targeted fields into a unified container and offloads combination rules
to a clean aggregator class.
### Key Changes
- **Runner Fix**: Added stateful tracking using `METADATA_TAG` (persisting
`PipelineMetadata`) in `ReduceFnRunner`, ensuring metadata is no longer lost
during grouping.
- **Extensible Container**: Created `PipelineMetadata` (guided by
`@AutoValue`) that groups element metadata together.
- **Metadata Combiners**: Encapsulated combination logic within
`PipelineMetadataCombiner`.
------------------------
Thank you for your contribution! Follow this checklist to help us
incorporate your contribution quickly and easily:
- [ ] Mention the appropriate issue in your description (for example:
`addresses #123`), if applicable. This will automatically add a link to the
pull request in the issue. If you would like the issue to automatically close
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
- [ ] Update `CHANGES.md` with noteworthy changes.
- [ ] If this contribution is large, please file an Apache [Individual
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
See the [Contributor Guide](https://beam.apache.org/contribute) for more
tips on [how to make review process
smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier).
To check the build health, please visit
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
GitHub Actions Tests Status (on master branch)
------------------------------------------------------------------------------------------------
[](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more
information about GitHub Actions CI or the [workflows
README](https://github.com/apache/beam/blob/master/.github/workflows/README.md)
to see a list of phrases to trigger workflows.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]