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

deadlock of ldiskfs_quota_off()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.9.0
    • None
    • 3
    • 12256

    Description

      When I ran quotacheck directly on ldiskfs, the process stuck. Following is the dump stack. The ext4_quota_off() function added by ext4-quota-force-block-alloc-quotaoff.patch tried to grab read lock of sb->s_umount. But it stuck there because it was holding write lock of sb->s_umount.

      COMMAND: "quotacheck"
      TASK: ffff88010286aae0 [THREAD_INFO: ffff880102610000]
      CPU: 0
      STATE: TASK_UNINTERRUPTIBLE
      crash> bt
      PID: 21560 TASK: ffff88010286aae0 CPU: 0 COMMAND: "quotacheck"
      #0 [ffff880102611b60] schedule at ffffffff8150c432
      #1 [ffff880102611c28] rwsem_down_failed_common at ffffffff8150e9e5
      #2 [ffff880102611c88] rwsem_down_read_failed at ffffffff8150eb76
      #3 [ffff880102611cc8] call_rwsem_down_read_failed at ffffffff81281b94
      #4 [ffff880102611d30] ldiskfs_quota_off at ffffffffa02fe115 [ldiskfs]
      #5 [ffff880102611d90] ldiskfs_remount at ffffffffa02fd41d [ldiskfs]
      #6 [ffff880102611e60] do_remount_sb at ffffffff811825bc
      #7 [ffff880102611ea0] do_mount at ffffffff811a3915
      #8 [ffff880102611f20] sys_mount at ffffffff811a3c10
      #9 [ffff880102611f80] system_call_fastpath at ffffffff8100b072
      RIP: 00007f97e757ee0a RSP: 00007fffe66e9388 RFLAGS: 00010297
      RAX: 00000000000000a5 RBX: ffffffff8100b072 RCX: 0000000000000001
      RDX: 00007f97e9f02940 RSI: 00007f97e9f01740 RDI: 0000000000000000
      RBP: 00007f97e822b4a0 R8: 0000000000000000 R9: 0000000000000000
      R10: 00000000c0ed0021 R11: 0000000000000206 R12: 00007f97e7ea7047
      R13: 00007f97e7ea5c00 R14: 0000000000000001 R15: 00007f97e822b4a0
      ORIG_RAX: 00000000000000a5 CS: 0033 SS: 002b
      crash>

      Following is how to reproduce it. Please note that the version of quota-tools is 4.0.1. Somehow quota-tools of version 3.17 refuses to quotacheck a ldiskfs mount point.

      [root@vm1 quota-tools]# mount -t ldiskfs /dev/sdb3 -o usrquota /mnt/
      [root@vm1 quota-tools]# ./quotacheck /mnt/ -f
      .

      Attachments

        Activity

          People

            niu Niu Yawei (Inactive)
            lixi Li Xi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: