From cccf1f0b2c0134705d14acd17eaf9120b60a0467 Mon Sep 17 00:00:00 2001 From: James Liu Date: Fri, 18 Mar 2016 10:39:44 -0700 Subject: [PATCH] os/kstore: we have flush_txns is to make sure read after write for the same object. That's the reason why we add _txc_finalize(osr,txc) after we add the transaction. However, since we did not call STATE_FINISHING at all, The _txf_finish will never be called and flush_txns of object will never be removed. It will make the read on the same object hanging there forever. We will combine KV_DONE and STATE_FINISHING. Signed-off-by: James Liu --- src/os/kstore/KStore.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 src/os/kstore/KStore.cc diff --git a/src/os/kstore/KStore.cc b/src/os/kstore/KStore.cc old mode 100644 new mode 100755 index a2250d8bfdf21..3c36b5c75da82 --- a/src/os/kstore/KStore.cc +++ b/src/os/kstore/KStore.cc @@ -2204,7 +2204,7 @@ void KStore::_txc_state_proc(TransContext *txc) case TransContext::STATE_KV_DONE: txc->log_state_latency(logger, l_kstore_state_kv_done_lat); txc->state = TransContext::STATE_FINISHING; - break; + // ** fall-thru ** case TransContext::TransContext::STATE_FINISHING: txc->log_state_latency(logger, l_kstore_state_finishing_lat); -- 2.39.5