Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
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:
@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 ) ) }
The same for MockLogTest.
Attachments
Issue Links
- links to