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

faulty MDT connection can leak a reference to export

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.16.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      if target_handle_connect() races with an export eviction then the following scenario can happen:

      • mdt_obd_reconnect() -> .. nodemap_add_member() grabs a reference to the export
      • then target_handle_connect() finds the export invalide and exits with -ENODEV:
        	if (export->exp_disconnected) {
        		spin_unlock(&export->exp_lock);
        		GOTO(out, rc = -ENODEV);
        

        after umount won't be able to complete with the following symptoms:

        00000020:02000400:1.0:1673726953.882508:0:8583:0:(genops.c:1792:obd_exports_barrier()) lustre-MDT0000 is waiting for obd_unlinked_exports more than 7 seconds. The obd refcount = 4. Is it stuck?
        00000020:02000400:1.0:1673726953.889142:0:8583:0:(genops.c:1758:print_export_data()) lustre-MDT0000: UNLINKED 000000002760c5c2 5a4bd497-6ace-43e0-8e46-c6b0e7dc84ba 0@lo 1 (0 0 0) 1 0 1 0: 00000000e9920e55  4294967301 stale:0
        

      Attachments

        Issue Links

          Activity

            People

              bzzz Alex Zhuravlev
              bzzz Alex Zhuravlev
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: