vl-kp opened a new issue, #12610:
URL: https://github.com/apache/iceberg/issues/12610

   ### Feature Request / Improvement
   
   ### Feature Request / Improvement
   
   # Improve coordinator election logging in Iceberg Kafka Connect Sink
   
   ## Problem Description
   The Iceberg Kafka Connect Sink connector fails silently when there's a 
mismatch between:
   - The Kafka Connect consumer group ID (`consumer.group.id`)
   - The Iceberg connector control topic group ID (`iceberg.connect.group-id`)
   
   When this mismatch occurs, no coordinator is elected and no commits happen, 
but there are no clear error messages to help users identify the issue.
   
   ## Impact
   When group IDs don't match:
   1. No coordinator is elected
   2. No START_COMMIT events are sent
   3. Data is consumed but not committed to Iceberg tables
   4. Users have limited visibility into why coordination isn't working
   
   ## Steps to Reproduce
   The issue can be observed in these scenarios:
   
   ### Scenario 1: Explicit Different Group IDs
   Configure Kafka Connect sink connector with:
   ```properties
   consumer.group.id=connect-sink-group
   iceberg.connect.group-id=different-group-name
   ```
   
   ### Scenario 2: Using Default Group ID (More Common)
   Configure Kafka Connect sink connector with only:
   ```properties
   consumer.group.id=connect-sink-group
   # iceberg.connect.group-id not set, will use default value 
'connect-iceberg-sink'
   ```
   
   Key code references:
   ```java
   // In CommitterImpl.java - Coordinator election process
   private boolean hasLeaderPartition(Collection<TopicPartition> 
currentAssignedPartitions) {
       ConsumerGroupDescription groupDesc;
       try (Admin admin = clientFactory.createAdmin()) {
           groupDesc = 
KafkaUtils.consumerGroupDescription(config.connectGroupId(), admin);
       }
   ...
   
   // In IcebergSinkConfig.java - Default group ID configuration
   public static final String CONNECT_GROUP_ID = "iceberg.connect.group-id";
   public static final String CONNECT_GROUP_ID_DEFAULT = "connect-iceberg-sink";
   ```
   
   In both scenarios:
   1. Start the connector
   2. Observe that:
      - Data is being consumed
      - No commits are happening
      - No clear error messages about group ID mismatch
   
   ## Root Cause
   The `hasLeaderPartition` method in `CommitterImpl` checks for the control 
topic's consumer group existence but doesn't validate if it matches the actual 
Kafka Connect consumer group ID. This leads to a situation where:
   1. The connector looks for members in the wrong consumer group (either 
explicitly configured or default `connect-iceberg-sink`)
   2. No coordinator is elected because the group appears empty
   3. The actual consumer group (where data is being consumed) is different
   
   ## Proposed Solution
   1. Add appropriate logging when consumer group is not found
   2. Provide clear messages to help users identify potential group ID 
mismatches
   
   ## Compatibility
   This change is backwards compatible as it only improves logging without 
changing any behavior. 
   
   ### Query engine
   
   None
   
   ### Willingness to contribute
   
   - [x] I can contribute this improvement/feature independently
   - [x] I would be willing to contribute this improvement/feature with 
guidance from the Iceberg community
   - [ ] I cannot contribute this improvement/feature at this time
   
   ### Query engine
   
   None
   
   ### Willingness to contribute
   
   - [ ] I can contribute this improvement/feature independently
   - [ ] I would be willing to contribute this improvement/feature with 
guidance from the Iceberg community
   - [ ] I cannot contribute this improvement/feature at this time


-- 
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: issues-unsubscr...@iceberg.apache.org.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to