ncliang commented on a change in pull request #9765:
URL: https://github.com/apache/kafka/pull/9765#discussion_r546001555



##########
File path: 
connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/DistributedHerderTest.java
##########
@@ -566,6 +566,112 @@ public Boolean answer() throws Throwable {
         PowerMock.verifyAll();
     }
 
+    @Test
+    public void testRevoke() throws TimeoutException {
+        revokeAndReassign(false);
+    }
+
+    @Test
+    public void testIncompleteRebalanceBeforeRevoke() throws TimeoutException {
+        revokeAndReassign(true);
+    }
+
+    public void revokeAndReassign(boolean incompleteRebalance) throws 
TimeoutException {

Review comment:
       It's hard to tell if this actually reproduces the issue or not due to 
the heavy mocking required. Is there a more direct way to reproduce? Maybe in 
`RebalanceSourceConnectorsIntegrationTest` or similar? Even if the IT ends up 
being flaky, having that repro would boost confidence in this fix.

##########
File path: 
connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java
##########
@@ -1740,7 +1741,7 @@ public void onRevoked(String leader, Collection<String> 
connectors, Collection<C
             // Note that since we don't reset the assignment, we don't revoke 
leadership here. During a rebalance,
             // it is still important to have a leader that can write configs, 
offsets, etc.
 
-            if (rebalanceResolved) {
+            if (rebalanceResolved || currentProtocolVersion >= 
CONNECT_PROTOCOL_V1) {

Review comment:
       Maybe add a comment explaining why the additional check is needed.




----------------------------------------------------------------
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.

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


Reply via email to