From ab4c62332e116748e8714fa584b443be8b8f4c64 Mon Sep 17 00:00:00 2001 From: Igor Canadi Date: Wed, 6 Apr 2016 15:00:15 -0700 Subject: [PATCH] Don't use version in the error message Summary: We use object `v` in the error message, which is not initialized if the edit is column family manipulation. This doesn't provide much useful info, so this diff is removing it. Instead, it dumps actual VersionEdit contents. Test Plan: compiles. would be great to get tests in version_set_test.cc that cover cases where a file write fails Reviewers: sdong, yhchiang, andrewkr Reviewed By: andrewkr Subscribers: andrewkr, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D56349 --- db/version_set.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/db/version_set.cc b/db/version_set.cc index 27b326ec5..4fb2f75ef 100644 --- a/db/version_set.cc +++ b/db/version_set.cc @@ -2336,11 +2336,14 @@ Status VersionSet::LogAndApply(ColumnFamilyData* column_family_data, manifest_file_size_ = new_manifest_file_size; prev_log_number_ = edit->prev_log_number_; } else { + std::string version_edits; + for (auto& e : batch_edits) { + version_edits = version_edits + "\n" + e->DebugString(true); + } Log(InfoLogLevel::ERROR_LEVEL, db_options_->info_log, - "Error in committing version %lu to [%s]", - (unsigned long)v->GetVersionNumber(), - column_family_data ? column_family_data->GetName().c_str() - : ""); + "[%s] Error in committing version edit to MANIFEST: %s", + column_family_data ? column_family_data->GetName().c_str() : "", + version_edits.c_str()); delete v; if (new_descriptor_log) { Log(InfoLogLevel::INFO_LEVEL, db_options_->info_log,