AndrewJSchofield commented on code in PR #18521:
URL: https://github.com/apache/kafka/pull/18521#discussion_r1914571923


##########
core/src/test/java/kafka/test/api/ShareConsumerTest.java:
##########
@@ -1922,6 +1930,40 @@ private void warmup() throws InterruptedException {
         }
     }
 
+    private void maybeVerifyShareGroupStateTopicRecordCount(String persister, 
int messageCount) {
+        if (!persister.equals(DEFAULT_STATE_PERSISTER)) {
+            return;
+        }
+        try {
+            TestUtils.waitForCondition(() ->
+                    
!cluster.brokers().get(0).metadataCache().getAliveBrokerNodes(new 
ListenerName("EXTERNAL")).isEmpty(),
+                DEFAULT_MAX_WAIT_MS, 100L, () -> "cache not up yet");
+            Map<String, Object> consumerConfigs = new HashMap<>();
+            consumerConfigs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, 
cluster.bootstrapServers());
+            consumerConfigs.put(ConsumerConfig.GROUP_ID_CONFIG, 
UUID.randomUUID().toString());
+            consumerConfigs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, 
ByteArrayDeserializer.class.getName());
+            
consumerConfigs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, 
ByteArrayDeserializer.class.getName());
+            consumerConfigs.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, 
"earliest");
+            try (KafkaConsumer<byte[], byte[]> consumer = new 
KafkaConsumer<>(consumerConfigs)) {
+                
consumer.subscribe(Collections.singleton(Topic.SHARE_GROUP_STATE_TOPIC_NAME));
+                Set<ConsumerRecord<byte[], byte[]>> records = new HashSet<>();
+                TestUtils.waitForCondition(() -> {
+                        ConsumerRecords<byte[], byte[]> msgs = 
consumer.poll(Duration.ofMillis(5000L));
+                        if (msgs.count() > 0) {
+                            
msgs.records(Topic.SHARE_GROUP_STATE_TOPIC_NAME).forEach(records::add);
+                        }
+                        return records.size()  == messageCount + 2; // +2 
because of extra warmup records

Review Comment:
   nit: extra space before `==`



##########
core/src/test/java/kafka/test/api/ShareConsumerTest.java:
##########
@@ -1922,6 +1930,40 @@ private void warmup() throws InterruptedException {
         }
     }
 
+    private void maybeVerifyShareGroupStateTopicRecordCount(String persister, 
int messageCount) {
+        if (!persister.equals(DEFAULT_STATE_PERSISTER)) {
+            return;
+        }
+        try {
+            TestUtils.waitForCondition(() ->
+                    
!cluster.brokers().get(0).metadataCache().getAliveBrokerNodes(new 
ListenerName("EXTERNAL")).isEmpty(),
+                DEFAULT_MAX_WAIT_MS, 100L, () -> "cache not up yet");
+            Map<String, Object> consumerConfigs = new HashMap<>();
+            consumerConfigs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, 
cluster.bootstrapServers());
+            consumerConfigs.put(ConsumerConfig.GROUP_ID_CONFIG, 
UUID.randomUUID().toString());
+            consumerConfigs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, 
ByteArrayDeserializer.class.getName());
+            
consumerConfigs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, 
ByteArrayDeserializer.class.getName());
+            consumerConfigs.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, 
"earliest");

Review Comment:
   Then you could also use `seekToBeginning()`



##########
core/src/test/java/kafka/test/api/ShareConsumerTest.java:
##########
@@ -1922,6 +1930,40 @@ private void warmup() throws InterruptedException {
         }
     }
 
+    private void maybeVerifyShareGroupStateTopicRecordCount(String persister, 
int messageCount) {
+        if (!persister.equals(DEFAULT_STATE_PERSISTER)) {
+            return;
+        }
+        try {
+            TestUtils.waitForCondition(() ->
+                    
!cluster.brokers().get(0).metadataCache().getAliveBrokerNodes(new 
ListenerName("EXTERNAL")).isEmpty(),
+                DEFAULT_MAX_WAIT_MS, 100L, () -> "cache not up yet");
+            Map<String, Object> consumerConfigs = new HashMap<>();
+            consumerConfigs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, 
cluster.bootstrapServers());
+            consumerConfigs.put(ConsumerConfig.GROUP_ID_CONFIG, 
UUID.randomUUID().toString());

Review Comment:
   I think you could use `KafkaConsumer.assign()` instead so that the test 
doesn't have to wait for the consumer to join the consumer group.



-- 
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: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to