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

DLC: LNetFini() assert is hit if lustre_rmmod without bringing down NI

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.7.0
    • Lustre 2.7.0
    • 3
    • 16752

    Description

      if lnet is not brought down properly (IE: lctl network down or lnetctl lnet unconfigure), then LNetFini():LASSERT(the_lnet.ln_refcount == 0); is hit. We need to modify this assert to account for this scenario. This wasn't a problem before because a network was always loaded irregardless. and LNetNIFini() was always called to set ln_refcoutn to 0

      Attachments

        Activity

          [LU-6010] DLC: LNetFini() assert is hit if lustre_rmmod without bringing down NI
          pjones Peter Jones added a comment -

          Landed for 2.7

          pjones Peter Jones added a comment - Landed for 2.7

          Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/13110/
          Subject: LU-6010 lnet: prevent assert on LNet module unload
          Project: fs/lustre-release
          Branch: master
          Current Patch Set:
          Commit: f1a2e6107c124d010d89973cfd716fbd17b689f0

          gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/13110/ Subject: LU-6010 lnet: prevent assert on LNet module unload Project: fs/lustre-release Branch: master Current Patch Set: Commit: f1a2e6107c124d010d89973cfd716fbd17b689f0
          isaac Isaac Huang (Inactive) added a comment - - edited

          Isn't the "Use Case 3/6" illegal uses of DLC? The user should NOT be allowed to remove the lnet module if DLC configure has been called successfully but DLC unconfigure has not been called yet.

          I think the correct action for "Use Case 3/6" is to prevent the lnet module to be unloaded - i.e. to enforce the correct DLC usage in "Use Case 5". In other words, it should be handled the same way as in "Use Case 8", fail with "lnet in use error".

          isaac Isaac Huang (Inactive) added a comment - - edited Isn't the "Use Case 3/6" illegal uses of DLC? The user should NOT be allowed to remove the lnet module if DLC configure has been called successfully but DLC unconfigure has not been called yet. I think the correct action for "Use Case 3/6" is to prevent the lnet module to be unloaded - i.e. to enforce the correct DLC usage in "Use Case 5". In other words, it should be handled the same way as in "Use Case 8", fail with "lnet in use error".

          Amir Shehata (amir.shehata@intel.com) uploaded a new patch: http://review.whamcloud.com/13110
          Subject: LU-6010 lnet: prevent assert on LNet module unload
          Project: fs/lustre-release
          Branch: master
          Current Patch Set: 1
          Commit: 1262d8f1188c3b610354908a0049a8effe0af314

          gerrit Gerrit Updater added a comment - Amir Shehata (amir.shehata@intel.com) uploaded a new patch: http://review.whamcloud.com/13110 Subject: LU-6010 lnet: prevent assert on LNet module unload Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 1262d8f1188c3b610354908a0049a8effe0af314

          Here are the use cases for loading/unloading LNet, and which ones correspond to this issue:

          Use Case 1
          Configure LNet with no mod NI -> initializes NI
          Dynamically add NIs
          Unconfigure LNet -> uninitializes NI
          lustre_rmmod
          
          Use Case 2
          Configure LNet with no mod NI
          Unconfigure LNet
          lustre_rmmod
          
          Use Case 3
          Configure LNet with no mod NI
          lustre_rmmod
          --> LU-6010
          
          Use Case 4
          Configure LNet with mod NI
          Dynamically add NIs
          Unconfigure LNet
          lustre_rmmod
          
          Use Case 5
          Configure LNet with mod NI
          Dynamically del all NIs
          Unconfigure LNet
          lustre_rmmod
          
          Use Case 6
          Configure LNet with mod NI
          Dynamically del all NIs
          lustre_rmmod
          --> LU-6010
          
          MODULE and LNet interaction
          -> can not dynamically add NIs from a different module has to be from IOCTL
          
          Use Case 7
          Module X: Configure LNet with mod NI
          Module Y: Configure LNet with mod NI
          MODULE X: Unconfigure LNet
          MODULE Y: Unconfigure LNet
          lustre_rmmod
          
          Use Case 8
          Module X: Configure LNet with mod NI
          Module Y: Configure LNet with mod NI
          MODULE Y: Unconfigure LNet
          lustre_rmmod
           -> lnet in use error
          
          Use Case 9
          Module X: Configure LNet with mod NI
          Module Y: Configure LNet with mod NI
          lustre_rmmod
           -> lnet in use error
          
          ashehata Amir Shehata (Inactive) added a comment - Here are the use cases for loading/unloading LNet, and which ones correspond to this issue: Use Case 1 Configure LNet with no mod NI -> initializes NI Dynamically add NIs Unconfigure LNet -> uninitializes NI lustre_rmmod Use Case 2 Configure LNet with no mod NI Unconfigure LNet lustre_rmmod Use Case 3 Configure LNet with no mod NI lustre_rmmod --> LU-6010 Use Case 4 Configure LNet with mod NI Dynamically add NIs Unconfigure LNet lustre_rmmod Use Case 5 Configure LNet with mod NI Dynamically del all NIs Unconfigure LNet lustre_rmmod Use Case 6 Configure LNet with mod NI Dynamically del all NIs lustre_rmmod --> LU-6010 MODULE and LNet interaction -> can not dynamically add NIs from a different module has to be from IOCTL Use Case 7 Module X: Configure LNet with mod NI Module Y: Configure LNet with mod NI MODULE X: Unconfigure LNet MODULE Y: Unconfigure LNet lustre_rmmod Use Case 8 Module X: Configure LNet with mod NI Module Y: Configure LNet with mod NI MODULE Y: Unconfigure LNet lustre_rmmod -> lnet in use error Use Case 9 Module X: Configure LNet with mod NI Module Y: Configure LNet with mod NI lustre_rmmod -> lnet in use error

          People

            ashehata Amir Shehata (Inactive)
            ashehata Amir Shehata (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: