You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Grant Henke (JIRA)" <ji...@apache.org> on 2017/02/08 21:52:41 UTC

[jira] [Created] (KAFKA-4746) Offsets can be committed for the offsets topic

Grant Henke created KAFKA-4746:
----------------------------------

             Summary: Offsets can be committed for the offsets topic
                 Key: KAFKA-4746
                 URL: https://issues.apache.org/jira/browse/KAFKA-4746
             Project: Kafka
          Issue Type: Bug
          Components: core
    Affects Versions: 0.9.0.0
            Reporter: Grant Henke


Though this is likely rare and I don't suspect to many people would try to do this, we should prevent users from committing offsets for the offsets topic into the offsets topic. This would essentially create an infinite loop in any consumer consuming from that topic. Also committing offsets for a compacted topic doesn't likely make sense anyway. 

Here is a quick failing test I wrote to see if this guard exists:

{code:title=OffsetCommitTest.scala|borderStyle=solid}
 @Test
  def testOffsetTopicOffsetCommit() {
    val topic1 = "__consumer_offsets"
    // Commit an offset
    val expectedReplicaAssignment = Map(0  -> List(1))
    val commitRequest = OffsetCommitRequest(
      groupId = group,
      requestInfo = immutable.Map(TopicAndPartition(topic1, 0) -> OffsetAndMetadata(offset=42L)),
      versionId = 2
    )
    val commitResponse = simpleConsumer.commitOffsets(commitRequest)

    assertEquals(Errors.INVALID_TOPIC_EXCEPTION.code, commitResponse.commitStatus.get(TopicAndPartition(topic1, 0)).get)
  }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)