Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Lustre 2.8.0
-
None
-
3
-
9223372036854775807
Description
LU-7903 reveals that REP-ACK is disabled in 2.8, this was introduced in LU-3538 http://review.whamcloud.com/#/c/12530/, which is to support DNE Commit-on-Sharing, but it disabled REP-ACK, while Commit-on-Sharing doesn't take effect for local operations (operation which involves only one MDT) either, this may cause single MDT recovery fail.
To fix this, we need to enable REP-ACK, and also make sure http://review.whamcloud.com/#/c/12530/ work as designed. The implementation will be like this:
1. save local locks upon unlock as before, but don't convert locks into COS mode.
2. reply_out_callback() wakes up ptlrpc_handle_rs(), if reply is not committed yet, convert locks into COS mode, otherwise decref locks like before.
3. later when the operation is committed, ptlrpc_commit_replies() wakes up ptlrpc_handle_rs() again, which will decref locks like before.
Attachments
Issue Links
- is related to
-
LU-9504 LBUG ptlrpc_handle_rs()) ASSERTION( lock != ((void *)0) ) failed
- Resolved