dajac commented on code in PR #14408: URL: https://github.com/apache/kafka/pull/14408#discussion_r1333162337
########## group-coordinator/src/main/java/org/apache/kafka/coordinator/group/generic/GenericGroup.java: ########## @@ -849,6 +853,46 @@ public void validateOffsetFetch( } } + /** + * Validates the OffsetDelete request. + */ + @Override + public void validateOffsetDelete() throws GroupIdNotFoundException { + if (isInState(DEAD)) { + throw new GroupIdNotFoundException(String.format("Group %s is in dead state.", groupId)); + } + } + + /** + * Validates the GroupDelete request. + */ + @Override + public void validateGroupDelete() throws ApiException { + if (isInState(DEAD)) { + throw new GroupIdNotFoundException(String.format("Group %s is in dead state.", groupId)); + } else if (isInState(STABLE) + || isInState(PREPARING_REBALANCE) + || isInState(COMPLETING_REBALANCE)) { + throw Errors.NON_EMPTY_GROUP.exception(); + } + + // We avoid writing the tombstone when the generationId is 0, since this group is only using + // Kafka for offset storage. + if (generationId() <= 0) { + throw Errors.UNKNOWN_SERVER_ERROR.exception(); Review Comment: Actually, what I said is wrong here. I think that we should generate the tombstone in any cases to ensure that the group is removed from the timeline hashmap. -- 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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org