ocfs2-devel.oss.oracle.com archive mirror
 help / color / mirror / Atom feed
* [Ocfs2-devel] ocfs2: A race between refmap setting and clearing
@ 2016-01-11  2:46 xuejiufei
  2016-01-12  4:03 ` Junxiao Bi
  2016-01-21  7:34 ` Junxiao Bi
  0 siblings, 2 replies; 15+ messages in thread
From: xuejiufei @ 2016-01-11  2:46 UTC (permalink / raw)
  To: ocfs2-devel

Hi all,
We have found a race between refmap setting and clearing which
will cause the lock resource on master is freed before other nodes
purge it.

Node 1                               Node 2(master)
dlm_do_master_request
                                dlm_master_request_handler
                                -> dlm_lockres_set_refmap_bit
call dlm_purge_lockres after unlock
                                dlm_deref_handler
                                -> find lock resource is in
                                   DLM_LOCK_RES_SETREF_INPROG state,
                                   so dispatch a deref work
dlm_purge_lockres succeed.

dlm_do_master_request
                                dlm_master_request_handler
                                -> dlm_lockres_set_refmap_bit

                                deref work trigger, call
                                dlm_lockres_clear_refmap_bit
                                to clear Node 1 from refmap

Now Node 2 can purge the lock resource but the owner of lock resource
on Node 1 is still Node 2 which may trigger BUG if the lock resource
is $RECOVERY or other problems.

We have discussed 2 solutions:
1)The master return error to Node 1 if the DLM_LOCK_RES_SETREF_INPROG
is set. Node 1 will not retry and master send another message to Node 1
after clearing the refmap. Node 1 can purge the lock resource after the
refmap on master is cleared.
2) The master return error to Node 1 if the DLM_LOCK_RES_SETREF_INPROG
is set, and Node 1 will retry to deref the lockres.

Does anybody has better ideas?

Thanks,
--Jiufei

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-01-26  2:45 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-11  2:46 [Ocfs2-devel] ocfs2: A race between refmap setting and clearing xuejiufei
2016-01-12  4:03 ` Junxiao Bi
2016-01-12  7:16   ` xuejiufei
2016-01-13  2:46     ` Junxiao Bi
2016-01-13  6:21       ` xuejiufei
2016-01-13  7:00         ` Junxiao Bi
2016-01-13  8:24           ` Joseph Qi
2016-01-18  4:28             ` Junxiao Bi
2016-01-18  7:07               ` xuejiufei
2016-01-19  3:03                 ` Junxiao Bi
2016-01-19  8:19                   ` xuejiufei
2016-01-19  9:02                     ` Junxiao Bi
2016-01-21  7:34 ` Junxiao Bi
2016-01-26  1:43   ` xuejiufei
2016-01-26  2:45     ` Junxiao Bi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).