Revision a0deec960f3a8190831c673e5ba998fe6fb7ea90 authored by Changli Gao on 21 November 2016, 02:14:33 UTC, committed by Facebook Github Bot on 21 November 2016, 02:24:12 UTC
Summary:
When calling StatisticsImpl::HistogramInfo::getMergedHistogram(), if
there is a dying thread, which is calling
ThreadLocalPtr::StaticMeta::OnThreadExit() to merge its thread values to
HistogramInfo, deadlock will occur. Because the former try to hold
merge_lock then ThreadMeta::mutex_, but the later try to hold
ThreadMeta::mutex_ then merge_lock. In short, the locking order isn't
the same.

This patch addressed this issue by releasing merge_lock before folding
thread values.
Closes https://github.com/facebook/rocksdb/pull/1552

Differential Revision: D4211942

Pulled By: ajkr

fbshipit-source-id: ef89bcb
1 parent fe349db
History
File Mode Size
hash_cuckoo_rep.cc -rw-r--r-- 24.8 KB
hash_cuckoo_rep.h -rw-r--r-- 1.6 KB
hash_linklist_rep.cc -rw-r--r-- 29.4 KB
hash_linklist_rep.h -rw-r--r-- 1.8 KB
hash_skiplist_rep.cc -rw-r--r-- 11.2 KB
hash_skiplist_rep.h -rw-r--r-- 1.4 KB
skiplistrep.cc -rw-r--r-- 8.6 KB
stl_wrappers.h -rw-r--r-- 923 bytes
vectorrep.cc -rw-r--r-- 9.0 KB

back to top