KAFKA-10066: TestOutputTopic should pass record headers into deserializers#8759
Conversation
There was a problem hiding this comment.
The capital S was on purpose; it's short for IntoDeserializersAndSerializers
There was a problem hiding this comment.
It seems like we are just verifying the headers are deserialized. Should we just use mock deserializers? Moreover, we could build a customized boolean deserializer which outputs true when the header is provided, or false otherwise.
There was a problem hiding this comment.
We don't verify that header are deserialized -- we just verify that the right function is called, that hands the header into the deserializer (ie, to allow used to read them as metadata).
I guess we should use mocks for the deserializers, but not for the serializers. Thus, not using mocks make the test use the same patter for both what seems "nicer".
Moreover, we could build a customized boolean deserializer which outputs true when the header is provided, or false otherwise.
Would this make the test simpler? I personally doubt it.
There was a problem hiding this comment.
Nice finding!
https://github.com/apache/kafka/blob/trunk/streams/test-utils/src/main/java/org/apache/kafka/streams/TopologyTestDriver.java#L805 has similar issue. Should we fix it as well?
There was a problem hiding this comment.
readOutput is deprecated. Thus not sure if it's worth to fix?
There was a problem hiding this comment.
Thus not sure if it's worth to fix?
Personally, what we should add to readOutput is "deprecation" rather than "a bug". Hence, it is worthwhile to fix if the fix does not break anything.
There was a problem hiding this comment.
Not sure if I can follow? readOutput is marked as deprecated: https://github.com/apache/kafka/blob/trunk/streams/test-utils/src/main/java/org/apache/kafka/streams/TopologyTestDriver.java#L797
I can still fix it on the side, but nobody should use it any longer and thus the gain seems minimal.
There was a problem hiding this comment.
but nobody should use it any longer and thus the gain seems minimal.
You are right. The benefit is too low.
|
Build failed due to broken |
|
Retest this please. |
|
Java 11: Java 14: Java 8: Those test should be fixed already. |
|
Retest this please |
|
Java 11: Java 14: Java 8: |
4bbe972 to
32ec931
Compare
…izers (#8759) Reviewers: John Roesler <john@confluent.io>, Boyang Chen <boyang@confluent.io>, Chia-Ping Tsai <chia7712@gmail.com>
…izers (#8759) Reviewers: John Roesler <john@confluent.io>, Boyang Chen <boyang@confluent.io>, Chia-Ping Tsai <chia7712@gmail.com>
|
Merged to |
* 'trunk' of github.com:apache/kafka: (46 commits) MINOR: improve code encapsulation between StreamThread and TaskManager (apache#8819) Fixing KAFKA-10094 (apache#8797) KAFKA-9851: Revoking Connect tasks due to connectivity issues should also clear the running assignment (apache#8804) KAFKA-9840; Skip End Offset validation when the leader epoch is not reliable (apache#8486) HOT_FIX: Update javadoc since imports added (apache#8817) KAFKA-8011: Fix flaky RegexSourceIntegrationTest (apache#8799) KAFKA-9570: Define SSL configs in all worker config classes, not just distributed (apache#8135) KAFKA-10111: Make SinkTaskContext.errantRecordReporter() a default method (apache#8814) KAFKA-10110: Corrected potential NPE when null label value added to KafkaMetricsContext (apache#8811) MINOR: Change the order that Connect calls `config()` and `validate()` to avoid validating if the required ConfigDef is null (apache#8810) MINOR: fix backwards incompatibility in JmxReporter introduced by KIP-606 MINOR: Fix javadoc warnings (apache#8809) KAFKA-9441: Improve Kafka Streams task management (apache#8776) fix the broken links of streams javadoc (apache#8789) KAFKA-10040; Make computing the PreferredReplicaImbalanceCount metric more efficient (apache#8724) KAFKA-10066: TestOutputTopic should pass record headers into deserializers (apache#8759) MINOR: Add explanation for disabling forwarding from value transformers (apache#8771) KAFKA-10033: Throw UnknownTopicOrPartitionException if altering configs of non-existing topic KAFKA-9434: automated protocol for alterReplicaLogDirs (apache#8311) KAFKA-9313: Set `use_all_dns_ips` as the new default for `client.dns.lookup` (KIP-602) (apache#8644) ...
Call for review @vvcephei