]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
Fixed a segfault when compaction fails
authorMike Kolupaev <kolmike@fb.com>
Tue, 16 Feb 2016 19:11:16 +0000 (11:11 -0800)
committersdong <siying.d@fb.com>
Tue, 23 Feb 2016 17:49:10 +0000 (09:49 -0800)
Summary: We've hit it today.

Test Plan: `make -j check`; didn't reproduce the issue

Reviewers: yhchiang

Reviewed By: yhchiang

Subscribers: dhruba

Differential Revision: https://reviews.facebook.net/D54219

db/db_impl.cc

index c7e83b56581fe29c0a5423712c0904824affe6f5..89cad03f61f957458945920656b16cbf50eb7b1b 100644 (file)
@@ -1854,7 +1854,6 @@ Status DBImpl::CompactFilesImpl(
         c->column_family_data(), job_context, *c->mutable_cf_options());
   }
   c->ReleaseCompactionFiles(s);
-  c.reset();
 
   ReleaseFileNumberFromPendingOutputs(pending_outputs_inserted_elem);
 
@@ -1872,6 +1871,8 @@ Status DBImpl::CompactFilesImpl(
     }
   }
 
+  c.reset();
+
   bg_compaction_scheduled_--;
   if (bg_compaction_scheduled_ == 0) {
     bg_cv_.SignalAll();