Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
Lustre 2.2.0
-
None
-
2
-
3
-
4689
Description
According to current CLIO lock state machine rules, the last "unuse()" maybe changes the cl_lock state to CLS_CACHED or CLS_NEW, and only the CLS_HELD cl_lock can be changed to CLS_CACHED.
On the other hand, with AGL introduced, the AGL RPC sponsor maybe exits the cl_lock processing without "wait()" called before corresponding OSC lock "upcall()", then it is the last "unuse()" duty to update the cl_lock state according to the low layer osc_lock state. To make the cl_lock interface clean, "wait()" should be called when the last "unuse()" called. Currently, it is done in "lov_lock_unuse()" against toplock. But OSC lock "upcall()" is against sublock. So the sublock state maybe un-updated, and inconsistent with low layer osc_lock state, then when the last "unuse()", its state cannot be changed to CLS_CACHED as expectation.
Attachments
Issue Links
- Trackbacks
-
Changelog 2.2 version 2.2.0 Support for networks: o2iblnd OFED 1.5.4 Server support for kernels: 2.6.32220.4.2.el6 (RHEL6) Client support for unpatched kernels: 2.6.18274.18.1.el5 (RHEL5) 2.6.32220.4.2.el6 (RHEL6) 2.6.32.360....