Jose Armando Garcia Sancio created KAFKA-12333:
--------------------------------------------------

             Summary: KafkaMetadataLog and MockLock should validate that 
appended epochs are monotonically
                 Key: KAFKA-12333
                 URL: https://issues.apache.org/jira/browse/KAFKA-12333
             Project: Kafka
          Issue Type: Sub-task
          Components: replication
            Reporter: Jose Armando Garcia Sancio


Both the MockLog and KafkaMetadataLog should only allow appendAsLeader and 
appendAsFollower with monotonically increasing epochs. In other words the 
following test in KafkaMetadataLogTest should fail:
{code:java}
  @Test
  def testOutOfOrderEpoch(): Unit = {
    val topicPartition = new TopicPartition("cluster-metadata", 0)
    val log = buildMetadataLog(tempDir, mockTime, topicPartition)    val 
recordFoo = new SimpleRecord("foo".getBytes())
    val currentEpoch = 3
    val initialOffset = log.endOffset().offset    log.appendAsLeader(
      MemoryRecords.withRecords(initialOffset, CompressionType.NONE, 
currentEpoch, recordFoo),
      currentEpoch
    )    // Out order epoch should throw an exception
    log.appendAsLeader(
      MemoryRecords.withRecords(
        initialOffset + 1, CompressionType.NONE, currentEpoch - 1, recordFoo
      ),
      currentEpoch - 1
    )    log.appendAsFollower(
      MemoryRecords.withRecords(
        initialOffset + 2, CompressionType.NONE, currentEpoch - 2, recordFoo
      )
    )
  } {code}
The same for MockLogTest.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to