[LU-1820] (genops.c:766:class_export_destroy()) ASSERTION(cfs_list_empty(&exp->exp_hp_rpcs)) failed Created: 04/Sep/12 Updated: 24/Apr/13 Resolved: 22/Apr/13 |
|
| Status: | Closed |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.1.0, Lustre 2.2.0, Lustre 2.3.0, Lustre 2.4.0 |
| Fix Version/s: | Lustre 2.3.0, Lustre 2.4.0 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Alexander Boyko | Assignee: | Mikhail Pershin |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | MB, patch | ||
| Severity: | 3 |
| Rank (Obsolete): | 4428 |
| Description |
|
ptlrpc_server_handle_req_in() call ptlrpc_server_request_add() |
| Comments |
| Comment by Alexander Boyko [ 04/Sep/12 ] |
| Comment by Peter Jones [ 13/Sep/12 ] |
|
Liang Could you please make the necessary revisions to the existing patch? Thanks Peter |
| Comment by Peter Jones [ 22/Sep/12 ] |
|
Landed for 2.3 and 2.4 |
| Comment by Nathan Rutman [ 21/Nov/12 ] |
|
Xyratex-bug-id: MRP-649 |
| Comment by Alexander Boyko [ 08/Apr/13 ] |
|
We have seen this assert again, sources contain the fix http://review.whamcloud.com/3855. The root cause of this bugs is the next part of target_handle_connect() if (req->rq_export != NULL)
class_export_put(req->rq_export);
/* request takes one export refcount */
req->rq_export = class_export_get(export);
req->rq_export was changed but export contain hp request (this is valid after connect became hp req). out_req:
if (export != NULL)
class_export_rpc_put(export);
ptlrpc_server_finish_request(svcpt, request);
1) delete last reference for the first export with hp req This invalid logic cause topic assert. |
| Comment by Oleg Drokin [ 11/Apr/13 ] |
|
Reopening in light of new evidence that the previous fix was incomplete |
| Comment by Peter Jones [ 11/Apr/13 ] |
|
Mike can you please review this latest patch? |
| Comment by Peter Jones [ 22/Apr/13 ] |
|
Landed for 2.4 |
| Comment by Alexander Boyko [ 24/Apr/13 ] |
|
Xyratex-bug-id: MRP-881 |