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

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

    [ https://issues.apache.org/jira/browse/KAFKA-4746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858659#comment-15858659 ] 

Jason Gustafson commented on KAFKA-4746:
----------------------------------------

I never thought of someone trying this, but it makes sense to forbid it. I'm not sure why you say committing offsets for a compacted topic doesn't make sense though. Can you elaborate?

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