[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()
and hp request can be added to export->exp_hp_rpcs, but reference
increase at ptlrpc_server_handle_request(). If class_disconnect() and
class_export_destroy() occures before ptlrpc_server_handle_request()
we got ASSERTION.



 Comments   
Comment by Alexander Boyko [ 04/Sep/12 ]

req http://review.whamcloud.com/3855

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).
And after that at ptlrpc_server_handle_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
2) ptlrpc_server_hpreq_fini() delete list entry for hp req

This invalid logic cause topic assert.
Request for review to fix this - http://review.whamcloud.com/#change,5922.

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

Generated at Sat Feb 10 01:19:58 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.