[LU-17297] tgt_grant_sanity_check()) ofd_obd_disconnect: tot_granted 0 != fo_tot_granted 8388608 during recovery Created: 17/Nov/23  Updated: 17/Nov/23

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Vladimir Saveliev Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

When stale client is evicted on expired recovery - class_disconnect_stale_exports() first moves the export out from obd->obd_exports list:

class_disconnect_stale_exports
   list_for_each_entry_safe(exp, n, &obd->obd_exports, exp_obd_chain) {
      list_move(&exp->exp_obd_chain, &work_list);

Then tgt_grant_sanity_check is callled:

class_disconnect_stale_exports
   class_disconnect_export_list
      obd_disconnect
         ofd_obd_disconnect (or mdt_obd_disconnect)
            tgt_grant_sanity_check

which iterates obd->obd_exports and obd->obd_unlinked_exports lists to sum grant counters: tot_dirty, tot_pending, tot_granted.

As the export being disconnected is neither on obd->obd_exports nor on obd->obd_unlinked_exports - the total grant counters mismatch with something like:

[128451.745573] LustreError: 182349:0:(tgt_grant.c:257:tgt_grant_sanity_check()) ofd_obd_disconnect: tot_granted 0 != fo_tot_granted 8388608


 Comments   
Comment by Gerrit Updater [ 17/Nov/23 ]

"Vladimir Saveliev <vladimir.saveliev@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/53171
Subject: LU-17297 grant: move tgt_grant_sanity_check() calls
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 5012a42cc756232692f6e1279282f77374b20dd6

Generated at Sat Feb 10 03:34:16 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.