Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
3
-
9223372036854775807
Description
in ptl_send_rpc():
/* If it's the first time to resend the request for EINPROGRESS, * we need to allocate a new XID (see after_reply()), it's different * from the resend for reply timeout. */ if (request->rq_nr_resend != 0 && list_empty(&request->rq_unreplied_list)) { __u64 min_xid = 0; /* resend for EINPROGRESS, allocate new xid to avoid reply * reconstruction */ spin_lock(&imp->imp_lock); ptlrpc_assign_next_xid_nolock(request); request->rq_mbits = request->rq_xid; min_xid = ptlrpc_known_replied_xid(imp); spin_unlock(&imp->imp_lock); lustre_msg_set_last_xid(request->rq_reqmsg, min_xid); DEBUG_REQ(D_RPCTRACE, request, "Allocating new xid for " "resend on EINPROGRESS"); } else if (request->rq_bulk != NULL) { ptlrpc_set_bulk_mbits(request); lustre_msg_set_mbits(request->rq_reqmsg, request->rq_mbits); }
lustre_msg_set_mbits() isn't called for first time EINPROGRESS resend, so the mbits won't be set properly in ptlrpc_body. This part of code needs be revised a bit.
Attachments
Issue Links
- is related to
-
LU-7990 Large bulk IO support
- Resolved