[Ocfs2-devel] avoid being purged when queued for assert_master

Wengang Wang wen.gang.wang at oracle.com
Sat Oct 15 03:58:02 PDT 2011


On 11-10-14 10:56, Sunil Mushran wrote:
> On 10/14/2011 01:57 AM, Wengang Wang wrote:
> >Problem reproduced(against mainline) with the above patch applied. Also with the hacking
> >patch(attached).
> >
> >testcase is attached.
> >
> >(kworker/u:2,14465,1):dlm_assert_master_handler:1828 ERROR: DIE! Mastery
> >assert from 0, but current owner is 1! (master)
> >lockres: master, owner=1, state=0
> >   last used: 0, refcnt: 3, on purge list: no
> >   on dirty list: no, on reco list: no, migrating pending: no
> >   inflight locks: 0, asts reserved: 0
> >   refmap nodes: [ ], inflight=0
> >   granted queue:
> >     type=5, conv=-1, node=1, cookie=1:28, ref=2, ast=(empty=y,pend=n),
> >bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)
> >   converting queue:
> >   blocked queue:
> 
> Name the nodes such that the node numbers are obvious. Easier
> to debug that way.
> 

Yea, sorry. Node 0 is "cool", node 1 is "desk".

> This won't reproduce if you move the sleep 30000 in dlm_do_assert_master()
> after we set DLM_LOCK_RES_SETREF_INPROG. Is that correct?
You are correct, if sleep 30s after setting SETREF_INPROG, it's hard to
reproduce(no hit per my test). When SETREF_INPROG flag is set, it
prevents the refmap bit from being cleared.

While, for fixing, I don't think SETREF_INPROG can help us.

thanks,
wengang. 
 



More information about the Ocfs2-devel mailing list