[LU-5633] not taking rq_lock when modify rq_resend Created: 17/Sep/14 Updated: 19/Feb/15 Resolved: 19/Feb/15 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.7.0 |
| Fix Version/s: | Lustre 2.7.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Niu Yawei (Inactive) | Assignee: | Niu Yawei (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Severity: | 3 |
| Rank (Obsolete): | 15758 |
| Description |
|
In after_reply(): /* retry indefinitely on EINPROGRESS */ if (lustre_msg_get_status(req->rq_repmsg) == -EINPROGRESS && ptlrpc_no_resend(req) == 0 && !req->rq_no_retry_einprogress) { time_t now = cfs_time_current_sec(); DEBUG_REQ(D_RPCTRACE, req, "Resending request on EINPROGRESS"); req->rq_resend = 1; req->rq_nr_resend++; rq_lock should be taken before modify rq_resend. |
| Comments |
| Comment by Niu Yawei (Inactive) [ 17/Sep/14 ] |
| Comment by Liang Zhen (Inactive) [ 18/Sep/14 ] |
|
probably nobody can race on it at this point? |
| Comment by Niu Yawei (Inactive) [ 18/Sep/14 ] |
Looks it can race with ptlrpc_resend() -> ptlrpc_resend_req(). |
| Comment by Jodi Levi (Inactive) [ 19/Feb/15 ] |
|
Patch landed to Master. |