From 9092c543613059dfd269314c05942ea221aeb7b9 Mon Sep 17 00:00:00 2001 From: Connor1996 Date: Mon, 18 Nov 2019 17:47:49 +0800 Subject: [PATCH 1/3] fix status override Signed-off-by: Connor1996 --- src/blob_gc_job.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/blob_gc_job.cc b/src/blob_gc_job.cc index 0c6cfcc14..e580f3eca 100644 --- a/src/blob_gc_job.cc +++ b/src/blob_gc_job.cc @@ -520,12 +520,12 @@ Status BlobGCJob::InstallOutputBlobFiles() { to_delete_files.append(std::to_string(builder.first->GetNumber())); handles.emplace_back(std::move(builder.first)); } - ROCKS_LOG_BUFFER( - log_buffer_, - "[%s] InstallOutputBlobFiles failed. Delete GC output files: %s", - blob_gc_->column_family_handle()->GetName().c_str(), - to_delete_files.c_str()); - s = blob_file_manager_->BatchDeleteFiles(handles); + Status status = blob_file_manager_->BatchDeleteFiles(handles); + ROCKS_LOG_BUFFER(log_buffer_, + "[%s] InstallOutputBlobFiles failed. Delete GC output " + "files: %s with status: %s", + blob_gc_->column_family_handle()->GetName().c_str(), + to_delete_files.c_str(), status.ToString().c_str()); } return s; } From 73160380ea1f78206735d89def205e89dda3f6c4 Mon Sep 17 00:00:00 2001 From: Connor1996 Date: Tue, 19 Nov 2019 10:51:39 +0800 Subject: [PATCH 2/3] address comment Signed-off-by: Connor1996 --- src/blob_gc_job.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/blob_gc_job.cc b/src/blob_gc_job.cc index e580f3eca..7cee87688 100644 --- a/src/blob_gc_job.cc +++ b/src/blob_gc_job.cc @@ -520,12 +520,19 @@ Status BlobGCJob::InstallOutputBlobFiles() { to_delete_files.append(std::to_string(builder.first->GetNumber())); handles.emplace_back(std::move(builder.first)); } - Status status = blob_file_manager_->BatchDeleteFiles(handles); ROCKS_LOG_BUFFER(log_buffer_, "[%s] InstallOutputBlobFiles failed. Delete GC output " - "files: %s with status: %s", + "files: %s", blob_gc_->column_family_handle()->GetName().c_str(), + to_delete_files.c_str()); + // Do not set status `s` here, cause it may override the non-okay-status of + // `s` so that in the outer funcation it will rewrite blob indexes to LSM by + // mistake. + Status status = blob_file_manager_->BatchDeleteFiles(handles); + if (!status.ok()) { + ROCKS_LOG_WARN(log_buffer_, "Delete GC output files[%s] failed: %s", to_delete_files.c_str(), status.ToString().c_str()); + } } return s; } From 3387ae030cfc593ac1725ddba02f247da3fbd7c0 Mon Sep 17 00:00:00 2001 From: Connor1996 Date: Tue, 19 Nov 2019 13:58:57 +0800 Subject: [PATCH 3/3] fix build Signed-off-by: Connor1996 --- src/blob_gc_job.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/blob_gc_job.cc b/src/blob_gc_job.cc index 7cee87688..18b82d371 100644 --- a/src/blob_gc_job.cc +++ b/src/blob_gc_job.cc @@ -530,7 +530,8 @@ Status BlobGCJob::InstallOutputBlobFiles() { // mistake. Status status = blob_file_manager_->BatchDeleteFiles(handles); if (!status.ok()) { - ROCKS_LOG_WARN(log_buffer_, "Delete GC output files[%s] failed: %s", + ROCKS_LOG_WARN(db_options_.info_log, + "Delete GC output files[%s] failed: %s", to_delete_files.c_str(), status.ToString().c_str()); } }