Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-17297

tgt_grant_sanity_check()) ofd_obd_disconnect: tot_granted 0 != fo_tot_granted 8388608 during recovery

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.16.0
    • None
    • None
    • 3
    • 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
      

      Attachments

        Activity

          People

            vsaveliev Vladimir Saveliev
            vsaveliev Vladimir Saveliev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: