提交 06264f4e 编写于 作者: O obdev 提交者: wangzelin.wzl

fix deadlock between memtable_mgr and lock_memtable

上级 04e378d7
......@@ -795,6 +795,7 @@ int ObLockMemtable::flush(int64_t recycle_log_ts, bool need_freeze)
{
int ret = OB_SUCCESS;
UNUSED(need_freeze);
{
WLockGuard guard(flush_lock_);
int64_t rec_log_ts = get_rec_log_ts();
if (rec_log_ts >= recycle_log_ts) {
......@@ -814,8 +815,11 @@ int ObLockMemtable::flush(int64_t recycle_log_ts, bool need_freeze)
ATOMIC_STORE(&is_frozen_, true);
}
}
}
if (is_frozen_memtable()) {
// dependent to judging is_active_memtable() in dag
// otherwise maybe merge active memtable
compaction::ObTabletMergeDagParam param;
param.ls_id_ = ls_id_;
param.tablet_id_ = LS_LOCK_TABLET;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册