From 34aa245dd8e8bc70187ae7d32f89cb53d31747cd Mon Sep 17 00:00:00 2001 From: Prashant D Date: Thu, 7 Dec 2017 11:52:12 -0800 Subject: [PATCH] Fix coverity issues version, write_batch Summary: db/version_builder.cc: 117 base_vstorage_->InternalComparator(); CID 1351713 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR) 2. uninit_member: Non-static class member field level_zero_cmp_.internal_comparator is not initialized in this constructor nor in any functions that it calls. db/version_edit.h: 145 FdWithKeyRange() 146 : fd(), 147 smallest_key(), 148 largest_key() { CID 1418254 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR) 2. uninit_member: Non-static class member file_metadata is not initialized in this constructor nor in any functions that it calls. 149 } db/version_set.cc: 120 } CID 1322789 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR) 4. uninit_member: Non-static class member curr_file_level_ is not initialized in this constructor nor in any functions that it calls. 121 } db/write_batch.cc: 939 assert(cf_mems_); CID 1419862 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR) 3. uninit_member: Non-static class member rebuilding_trx_seq_ is not initialized in this constructor nor in any functions that it calls. 940 } Closes https://github.com/facebook/rocksdb/pull/3092 Differential Revision: D6505666 Pulled By: yiwu-arbug fbshipit-source-id: fd2c68948a0280772691a419d72ac7e190951d86 --- db/version_builder.cc | 2 ++ db/version_edit.h | 1 + db/version_set.cc | 2 ++ db/write_batch.cc | 1 + 4 files changed, 6 insertions(+) diff --git a/db/version_builder.cc b/db/version_builder.cc index 49aa6ebfe..00972d4e5 100644 --- a/db/version_builder.cc +++ b/db/version_builder.cc @@ -66,6 +66,8 @@ class VersionBuilder::Rep { enum SortMethod { kLevel0 = 0, kLevelNon0 = 1, } sort_method; const InternalKeyComparator* internal_comparator; + FileComparator() : internal_comparator(nullptr) {} + bool operator()(FileMetaData* f1, FileMetaData* f2) const { switch (sort_method) { case kLevel0: diff --git a/db/version_edit.h b/db/version_edit.h index 47ebf5b1c..391e61434 100644 --- a/db/version_edit.h +++ b/db/version_edit.h @@ -144,6 +144,7 @@ struct FdWithKeyRange { FdWithKeyRange() : fd(), + file_metadata(nullptr), smallest_key(), largest_key() { } diff --git a/db/version_set.cc b/db/version_set.cc index b2b1dc438..401afdd84 100644 --- a/db/version_set.cc +++ b/db/version_set.cc @@ -102,6 +102,7 @@ class FilePicker { #endif level_files_brief_(file_levels), is_hit_file_last_in_level_(false), + curr_file_level_(nullptr), user_key_(user_key), ikey_(ikey), file_indexer_(file_indexer), @@ -2402,6 +2403,7 @@ VersionSet::VersionSet(const std::string& dbname, db_options_(db_options), next_file_number_(2), manifest_file_number_(0), // Filled by Recover() + options_file_number_(0), pending_manifest_file_number_(0), last_sequence_(0), last_allocated_sequence_(0), diff --git a/db/write_batch.cc b/db/write_batch.cc index e4c05eeae..521e53467 100644 --- a/db/write_batch.cc +++ b/db/write_batch.cc @@ -968,6 +968,7 @@ class MemTableInserter : public WriteBatch::Handler { post_info_created_(false), has_valid_writes_(has_valid_writes), rebuilding_trx_(nullptr), + rebuilding_trx_seq_(0), seq_per_batch_(seq_per_batch), // Write after commit currently uses one seq per key (instead of per // batch). So seq_per_batch being false indicates write_after_commit