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

osd-zfs deadlock on osd_object::oo_guard

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.11.0, Lustre 2.10.4
    • Lustre 2.10.0, Lustre 2.11.0
    • None
    • 2
    • 9223372036854775807

    Description

      Consider the following scenarios:

      1) The Thread1 calls osd_attr_set() to set flags on the object. The osd_attr_set() will call the osd_xattr_get() with holding the read mode semaphore on the object::oo_guard.

      2) The Thread2 calls osd_declare_destroy() to destroy the object, it will down_write() on the object::oo_gurad, but be blocked by the Thread1's granted read mode semaphore.

      3) The osd_xattr_get() triggered by the osd_xattr_set() will also down_read() on the object::oo_guard. But it will be blocked by the Thread2's pending down_write() request.

      Then the Thread1 and the Thread2 deadlock.

      Attachments

        Activity

          People

            yong.fan nasf (Inactive)
            yong.fan nasf (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: