More clear error message on uncompressing block (#8934)

Summary:
The origin error message of uncompressing block is confusing, which may result from either build support or data corruption.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/8934

Reviewed By: ltamasi

Differential Revision: D31112588

Pulled By: pdillinger

fbshipit-source-id: 1cbf2d4fbcb0ef376cf942246d06f48cb603f852
This commit is contained in:
ricky 2021-09-27 10:37:09 -07:00 committed by Facebook GitHub Bot
parent e0f697d2bd
commit b59b7570cf

View File

@ -360,9 +360,15 @@ Status UncompressBlockContentsForCompressionType(
UncompressData(uncompression_info, data, n, &uncompressed_size, UncompressData(uncompression_info, data, n, &uncompressed_size,
GetCompressFormatForVersion(format_version), allocator); GetCompressFormatForVersion(format_version), allocator);
if (!ubuf) { if (!ubuf) {
return Status::Corruption( if (!CompressionTypeSupported(uncompression_info.type())) {
"Unsupported compression method or corrupted compressed block contents", return Status::NotSupported(
CompressionTypeToString(uncompression_info.type())); "Unsupported compression method for this build",
CompressionTypeToString(uncompression_info.type()));
} else {
return Status::Corruption(
"Corrupted compressed block contents",
CompressionTypeToString(uncompression_info.type()));
}
} }
*contents = BlockContents(std::move(ubuf), uncompressed_size); *contents = BlockContents(std::move(ubuf), uncompressed_size);