This is an automated email from the ASF dual-hosted git repository.

AndrewJSchofield pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new db3986549cb KAFKA-20566: Improve logging in share coordinator (#22257)
db3986549cb is described below

commit db3986549cb4946635c88cbbd68d7dc8e9762183
Author: Andrew Schofield <[email protected]>
AuthorDate: Sun May 17 21:36:39 2026 +0100

    KAFKA-20566: Improve logging in share coordinator (#22257)
    
    This PR just improves the logging for situations in which the metadata
    image in the share coordinator does not contain an expected topic ID. We
    see this log line in some situations but because there are 5 instances
    with identical text, it's not possible to tell from the log alone which
    one is responsible.
    
    Reviewers: Chia-Ping Tsai <[email protected]>, Sushant Mahajan
     <[email protected]>, PoAn Yang <[email protected]>
---
 .../kafka/coordinator/share/ShareCoordinatorShard.java    | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/share-coordinator/src/main/java/org/apache/kafka/coordinator/share/ShareCoordinatorShard.java
 
b/share-coordinator/src/main/java/org/apache/kafka/coordinator/share/ShareCoordinatorShard.java
index dac6f3cc980..a124a6121f3 100644
--- 
a/share-coordinator/src/main/java/org/apache/kafka/coordinator/share/ShareCoordinatorShard.java
+++ 
b/share-coordinator/src/main/java/org/apache/kafka/coordinator/share/ShareCoordinatorShard.java
@@ -777,7 +777,8 @@ public class ShareCoordinatorShard implements 
CoordinatorShard<CoordinatorRecord
         Optional<CoordinatorMetadataImage.TopicMetadata> topicMetadataOp = 
metadataImage.topicMetadata(topicId);
         if (topicMetadataOp.isEmpty() ||
             topicMetadataOp.get().partitionCount() <= partitionId) {
-            log.error("Topic/TopicPartition not found in metadata image.");
+            log.error("Topic or partition not found in metadata image when 
writing: {}:{}-{}.", topicId,
+                
topicMetadataOp.map(CoordinatorMetadataImage.TopicMetadata::name).orElse("null"),
 partitionId);
             return 
Optional.of(getWriteErrorCoordinatorResult(Errors.UNKNOWN_TOPIC_OR_PARTITION, 
null, topicId, partitionId));
         }
 
@@ -825,7 +826,8 @@ public class ShareCoordinatorShard implements 
CoordinatorShard<CoordinatorRecord
         Optional<CoordinatorMetadataImage.TopicMetadata> topicMetadataOp = 
metadataImage.topicMetadata(topicId);
         if (topicMetadataOp.isEmpty() ||
             topicMetadataOp.get().partitionCount() <= partitionId) {
-            log.error("Topic/TopicPartition not found in metadata image.");
+            log.error("Topic or partition not found in metadata image when 
reading: {}:{}-{}.", topicId,
+                
topicMetadataOp.map(CoordinatorMetadataImage.TopicMetadata::name).orElse("null"),
 partitionId);
             return 
Optional.of(ReadShareGroupStateResponse.toErrorResponseData(topicId, 
partitionId, Errors.UNKNOWN_TOPIC_OR_PARTITION, 
Errors.UNKNOWN_TOPIC_OR_PARTITION.message()));
         }
 
@@ -859,7 +861,8 @@ public class ShareCoordinatorShard implements 
CoordinatorShard<CoordinatorRecord
         Optional<CoordinatorMetadataImage.TopicMetadata> topicMetadataOp = 
metadataImage.topicMetadata(topicId);
         if (topicMetadataOp.isEmpty() ||
             topicMetadataOp.get().partitionCount() <= partitionId) {
-            log.error("Topic/TopicPartition not found in metadata image.");
+            log.error("Topic or partition not found in metadata image when 
reading summary: {}:{}-{}.", topicId,
+                
topicMetadataOp.map(CoordinatorMetadataImage.TopicMetadata::name).orElse("null"),
 partitionId);
             return 
Optional.of(ReadShareGroupStateSummaryResponse.toErrorResponseData(topicId, 
partitionId, Errors.UNKNOWN_TOPIC_OR_PARTITION, 
Errors.UNKNOWN_TOPIC_OR_PARTITION.message()));
         }
 
@@ -891,7 +894,8 @@ public class ShareCoordinatorShard implements 
CoordinatorShard<CoordinatorRecord
         Optional<CoordinatorMetadataImage.TopicMetadata> topicMetadataOp = 
metadataImage.topicMetadata(topicId);
         if (topicMetadataOp.isEmpty() ||
             topicMetadataOp.get().partitionCount() <= partitionId) {
-            log.error("Topic/TopicPartition not found in metadata image.");
+            log.error("Topic or partition not found in metadata image when 
deleting: {}:{}-{}.", topicId,
+                
topicMetadataOp.map(CoordinatorMetadataImage.TopicMetadata::name).orElse("null"),
 partitionId);
             return 
Optional.of(getDeleteErrorCoordinatorResult(Errors.UNKNOWN_TOPIC_OR_PARTITION, 
null, topicId, partitionId));
         }
 
@@ -929,7 +933,8 @@ public class ShareCoordinatorShard implements 
CoordinatorShard<CoordinatorRecord
         Optional<CoordinatorMetadataImage.TopicMetadata> topicMetadataOp = 
metadataImage.topicMetadata(topicId);
         if (topicMetadataOp.isEmpty() ||
             topicMetadataOp.get().partitionCount() <= partitionId) {
-            log.error("Topic/TopicPartition not found in metadata image.");
+            log.error("Topic or partition not found in metadata image when 
initializing: {}:{}-{}.", topicId,
+                
topicMetadataOp.map(CoordinatorMetadataImage.TopicMetadata::name).orElse("null"),
 partitionId);
             return 
Optional.of(getInitializeErrorCoordinatorResult(Errors.UNKNOWN_TOPIC_OR_PARTITION,
 null, topicId, partitionId));
         }
 

Reply via email to