[ 
https://issues.apache.org/jira/browse/KAFKA-12815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17348068#comment-17348068
 ] 

Guozhang Wang commented on KAFKA-12815:
---------------------------------------

Yup, we are definitely fixing forward rather than regressing here as previously 
people would just get the incorrect result silently. As for the longer term, I 
kinda also agree that we can wait and see how large of an impact it would be to 
not have topic/offsets be available; but what I'm pointing out is that this is 
not an impossible task to do, we just need to be careful about our trade-offs 
here. For some advanced users that may be using `transformValues` heavily but 
do not leverage on topic/offsets, at least we should allow them to choose based 
on their own knowledge.

> 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
>            Assignee: Matthias J. Sax
>            Priority: Major
>             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