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

lu_device_fini()) ASSERTION( cfs_atomic_read(&d->ld_ref) == 0 ) failed from lovsub_device_free

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Critical
    • Lustre 2.8.0
    • Lustre 2.6.0
    • 3
    • 11737

    Description

      Apparently we have a problem with inode cleaning on unmount exposed by at least nfs.

      The easiest reproducer I have right now is this:

      sh llmount.sh
      echo 0 >/proc/sys/lnet/panic_on_lbug
      service nfs start
      mount localhost:/mnt/lustre /mnt/nfs -t nfs
      touch /mnt/nfs/file
      ls -l /mnt/lustre
      cp -f /etc/passwd /mnt/nfs/file
      
      umount /mnt/nfs
      service nfs stop
      sh llmountcleanup.sh
      

      Reading the logs, It appears that after the write file dentry is deleted, but because we have locks on inode - it stays in place (unlike when we do not use nfs where it also goes away after sync).
      Then on unmount file inode is found, but is considered dirty and not cleaned, meaning the layout lock and objects remain in place.
      Now we get to kill_super and that blows up trying to clean up lov.

      Attachments

        Issue Links

          Activity

            People

              niu Niu Yawei (Inactive)
              green Oleg Drokin
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: