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));
}