Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
None
-
None
-
3
-
15943
Description
Although very liketly, but there is no guarantee that request_out_callback will happen before reply_in_callback, if a request got reply before got request_out_callback(), then ptlrpc_unregister_reply() will return false because request has not been unlinked and req:;rq_req_unlink is not set to false.
static inline int ptlrpc_client_recv_or_unlink(struct ptlrpc_request *req) { int rc; spin_lock(&req->rq_lock); ...... rc = req->rq_receiving_reply ; rc = rc || req->rq_req_unlink || req->rq_reply_unlink; spin_unlock(&req->rq_lock); return rc; }
After this, even request_in_callback() happened, there is no wakeup for this request, ptlrpcd or app thread will keep waiting.
Attachments
Activity
Link | New: This issue is related to JFC-20 [ JFC-20 ] |
Link | Original: This issue is related to JFC-17 [ JFC-17 ] |
Link | Original: This issue is related to BULL-24 [ BULL-24 ] |
Link | New: This issue is related to BULL-24 [ BULL-24 ] |
Link | New: This issue is duplicated by BULL-24 [ BULL-24 ] |
Link | New: This issue is related to LDEV-243 [ LDEV-243 ] |
Link | New: This issue is related to JFC-17 [ JFC-17 ] |
Link | New: This issue duplicates SGI-241 [ SGI-241 ] |