[ https://issues.apache.org/jira/browse/HBASE-15621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matteo Bertozzi updated HBASE-15621: ------------------------------------ Status: Patch Available (was: Reopened) > Suppress Hbase SnapshotHFile cleaner error messages when a snaphot is going > on > ------------------------------------------------------------------------------- > > Key: HBASE-15621 > URL: https://issues.apache.org/jira/browse/HBASE-15621 > Project: HBase > Issue Type: Bug > Components: snapshots > Affects Versions: 2.0.0 > Reporter: huaxiang sun > Assignee: huaxiang sun > Priority: Minor > Fix For: 2.0.0, 1.3.0, 0.98.19, 1.1.5, 1.2.2 > > Attachments: HBASE-15621-v001.patch > > > Run into the following exception when a snapshot is going on. > partial file of region-manifest and data.manifest could be read and parsed by > the cleaner which results in InvalidProtocolBufferException, which needs to > be ignored for in-progress snapshot. > {code} > 2016-04-01 00:31:50,200 ERROR > org.apache.hadoop.hbase.master.snapshot.SnapshotHFileCleaner: Exception while > checking if: *** was valid, keeping it just in case. > com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol > message, the input ended unexpectedly in the middle of a field. This could > mean either than the input has been truncated or that an embedded message > misreported its own length. > at > com.google.protobuf.InvalidProtocolBufferException.truncatedMessage(InvalidProtocolBufferException.java:70) > at > com.google.protobuf.CodedInputStream.refillBuffer(CodedInputStream.java:746) > at > com.google.protobuf.CodedInputStream.readRawByte(CodedInputStream.java:769) > at > com.google.protobuf.CodedInputStream.readRawVarint64(CodedInputStream.java:462) > at > com.google.protobuf.CodedInputStream.readUInt64(CodedInputStream.java:188) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$StoreFile.<init>(SnapshotProtos.java:1331) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$StoreFile.<init>(SnapshotProtos.java:1263) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$StoreFile$1.parsePartialFrom(SnapshotProtos.java:1364) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$StoreFile$1.parsePartialFrom(SnapshotProtos.java:1359) > at > com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:309) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$FamilyFiles.<init>(SnapshotProtos.java:2161) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$FamilyFiles.<init>(SnapshotProtos.java:2103) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$FamilyFiles$1.parsePartialFrom(SnapshotProtos.java:2197) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$FamilyFiles$1.parsePartialFrom(SnapshotProtos.java:2192) > at > com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:309) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest.<init>(SnapshotProtos.java:1165) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest.<init>(SnapshotProtos.java:1094) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$1.parsePartialFrom(SnapshotProtos.java:1201) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotRegionManifest$1.parsePartialFrom(SnapshotProtos.java:1196) > at > com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:309) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotDataManifest.<init>(SnapshotProtos.java:3858) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotDataManifest.<init>(SnapshotProtos.java:3792) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotDataManifest$1.parsePartialFrom(SnapshotProtos.java:3894) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotDataManifest$1.parsePartialFrom(SnapshotProtos.java:3889) > at > com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:200) > at > com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:217) > at > com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:223) > at > com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:49) > at > org.apache.hadoop.hbase.protobuf.generated.SnapshotProtos$SnapshotDataManifest.parseFrom(SnapshotProtos.java:4094) > at > org.apache.hadoop.hbase.snapshot.SnapshotManifest.readDataManifest(SnapshotManifest.java:433) > at > org.apache.hadoop.hbase.snapshot.SnapshotManifest.load(SnapshotManifest.java:273) > at > org.apache.hadoop.hbase.snapshot.SnapshotManifest.open(SnapshotManifest.java:119) > at > org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil.visitTableStoreFiles(SnapshotReferenceUtil.java:125) > at > org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil.getHFileNames(SnapshotReferenceUtil.java:346) > at > org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil.getHFileNames(SnapshotReferenceUtil.java:329) > at > org.apache.hadoop.hbase.master.snapshot.SnapshotHFileCleaner$1.filesUnderSnapshot(SnapshotHFileCleaner.java:80) > at > org.apache.hadoop.hbase.master.snapshot.SnapshotFileCache.refreshCache(SnapshotFileCache.java:259) > at > org.apache.hadoop.hbase.master.snapshot.SnapshotFileCache.contains(SnapshotFileCache.java:179) > at > org.apache.hadoop.hbase.master.snapshot.SnapshotHFileCleaner.isFileDeletable(SnapshotHFileCleaner.java:60) > at > org.apache.hadoop.hbase.master.cleaner.BaseFileCleanerDelegate$1.apply(BaseFileCleanerDelegate.java:38) > at > org.apache.hadoop.hbase.master.cleaner.BaseFileCleanerDelegate$1.apply(BaseFileCleanerDelegate.java:35) > at > com.google.common.collect.Iterators$8.computeNext(Iterators.java:688) > at > com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at > com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at > com.google.common.collect.Iterators$8.computeNext(Iterators.java:686) > at > com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at > com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at com.google.common.collect.Iterators$6.hasNext(Iterators.java:582) > {code} > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)