Bug: paralle_group status updated in WriteThread::CompleteParallelWorker

Summary:
Multi-write thread may update the status of the parallel_group in
WriteThread::CompleteParallelWorker if the status of Writer is not ok!
When copy write status to the paralle_group, the write thread just hold the
mutex of the the writer processed by itself. it is useless. The thread
should held the the leader of the parallel_group instead.
Closes https://github.com/facebook/rocksdb/pull/1598

Differential Revision: D4252335

Pulled By: siying

fbshipit-source-id: 3864cf7
main
fangchenliaohui 8 years ago committed by Facebook Github Bot
parent 247d0979aa
commit b77007df8b
  1. 2
      db/write_thread.cc

@ -333,7 +333,7 @@ bool WriteThread::CompleteParallelWorker(Writer* w) {
auto* pg = w->parallel_group;
if (!w->status.ok()) {
std::lock_guard<std::mutex> guard(w->StateMutex());
std::lock_guard<std::mutex> guard(pg->leader->StateMutex());
pg->status = w->status;
}

Loading…
Cancel
Save