This is an automated email from the ASF dual-hosted git repository. jgus pushed a commit to branch 3.3 in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/3.3 by this push: new 8151af1ebfa MINOR: Dump log tool should support bootstrap checkpoint (#12556) 8151af1ebfa is described below commit 8151af1ebfa2d4f6ba09396a5dff76f289a6f526 Author: Jason Gustafson <ja...@confluent.io> AuthorDate: Thu Aug 25 09:17:55 2022 -0700 MINOR: Dump log tool should support bootstrap checkpoint (#12556) This patch adds support to `kafka-dump-log.sh` to print the `bootstrap.checkpoint` file from KIP-778: https://cwiki.apache.org/confluence/display/KAFKA/KIP-778:+KRaft+Upgrades. Reviewers: dengziming <dengziming1...@gmail.com>, Luke Chen <show...@gmail.com> --- core/src/main/scala/kafka/tools/DumpLogSegments.scala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/src/main/scala/kafka/tools/DumpLogSegments.scala b/core/src/main/scala/kafka/tools/DumpLogSegments.scala index b57342ff29b..e4d31baf1b6 100755 --- a/core/src/main/scala/kafka/tools/DumpLogSegments.scala +++ b/core/src/main/scala/kafka/tools/DumpLogSegments.scala @@ -30,6 +30,7 @@ import org.apache.kafka.common.metadata.{MetadataJsonConverters, MetadataRecordT import org.apache.kafka.common.protocol.ByteBufferAccessor import org.apache.kafka.common.record._ import org.apache.kafka.common.utils.Utils +import org.apache.kafka.controller.BootstrapMetadata import org.apache.kafka.metadata.MetadataRecordSerde import org.apache.kafka.snapshot.Snapshots @@ -253,8 +254,12 @@ object DumpLogSegments { val startOffset = file.getName.split("\\.")(0).toLong println(s"Log starting offset: $startOffset") } else if (file.getName.endsWith(Snapshots.SUFFIX)) { - val path = Snapshots.parse(file.toPath).get() - println(s"Snapshot end offset: ${path.snapshotId.offset}, epoch: ${path.snapshotId.epoch}") + if (file.getName == BootstrapMetadata.BOOTSTRAP_FILE) { + println("KRaft bootstrap snapshot") + } else { + val path = Snapshots.parse(file.toPath).get() + println(s"Snapshot end offset: ${path.snapshotId.offset}, epoch: ${path.snapshotId.epoch}") + } } val fileRecords = FileRecords.open(file, false).slice(0, maxBytes) try {