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)

Reply via email to