Lucas Bradstreet created KAFKA-9513: ---------------------------------------
Summary: Failed GroupMetadataManager loadGroupAndOffsets will consider groups as loaded Key: KAFKA-9513 URL: https://issues.apache.org/jira/browse/KAFKA-9513 Project: Kafka Issue Type: Improvement Reporter: Lucas Bradstreet Bugs in group loading such as https://issues.apache.org/jira/browse/KAFKA-8896 may cause errors loading offsets. loadGroupsAndOffsets's finally block adds the offsets partition to ownedPartitions and removes it from loadingPartitions even if this process does not succeed. {code:java} private[group] def loadGroupsAndOffsets(topicPartition: TopicPartition, onGroupLoaded: GroupMetadata => Unit): Unit = { try { val startMs = time.milliseconds() doLoadGroupsAndOffsets(topicPartition, onGroupLoaded) val endMs = time.milliseconds() val timeLapse = endMs - startMs partitionLoadSensor.record(timeLapse, endMs, false) info(s"Finished loading offsets and group metadata from $topicPartition in $timeLapse milliseconds.") } catch { case t: Throwable => error(s"Error loading offsets from $topicPartition", t) } finally { inLock(partitionLock) { ownedPartitions.add(topicPartition.partition) loadingPartitions.remove(topicPartition.partition) } } } {code} This means that the group is considered loaded by: {code:java} def isGroupLoading(groupId: String): Boolean = isPartitionLoading(partitionFor(groupId)) {code} Which may result in consumers being able to load the wrong offsets. We should consider whether we should be more defensive and instead mark the partition as failed. -- This message was sent by Atlassian Jira (v8.3.4#803005)