Matthias J. Sax created KAFKA-12815:
---------------------------------------
Summary: KTable.transformValue might have incorrect record metadata
Key: KAFKA-12815
URL: https://issues.apache.org/jira/browse/KAFKA-12815
Project: Kafka
Issue Type: Bug
Components: streams
Reporter: Matthias J. Sax
Fix For: 3.0.0
In the DSL, Kafka Streams applies an optimization for non-materialized tables:
when these are queried an upstream state store is accessed. To ensure that the
correct value is returned from the lookup, all intermediate processors after
the materialized store, and before the processor that triggers the lookup are
re-applied (cf `KTableValueGetter`).
For re-applying DSL operators like filter/mapValues that works fine. However,
for transformValue(), the method is executed with the incorrect `RecordContext`
(note that DSL operators like filter don't have access to the `RecordContext`
and thus, are not subject to this bug). Instead of using the record context
from the value that was received from the upstream state store (and that is
re-processed), the transformer would see the context from the record that
triggered the lookup.
Thus, the information about timestamp, offset, partition, topic name, and
headers is incorrect.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)