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

osd_otable_it_next() can miss spin_unlock()

Details

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

    Description

      osd_otable_it_next() in osd-zfs can leave the spinlock locked because of race:

      	if (!scrub->os_full_speed)
      		spin_lock(&scrub->os_lock);
      	it->ooi_prefetched--;
      	if (!scrub->os_full_speed) {
      		if (scrub->os_waiting) {
      			scrub->os_waiting = 0;
      			wake_up_all(&thread->t_ctl_waitq);
      		}
      		spin_unlock(&scrub->os_lock);
      	}
      

      os_full_speed may chane in-between which sometimes happens in my testing.

      Attachments

        Activity

          [LU-13246] osd_otable_it_next() can miss spin_unlock()
          pjones Peter Jones added a comment -

          Landed for 2.14

          pjones Peter Jones added a comment - Landed for 2.14

          Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/37547/
          Subject: LU-13246 osd: unlock os_lock if it was locked
          Project: fs/lustre-release
          Branch: master
          Current Patch Set:
          Commit: a9b9dd8312417fcb82513108f11b4684b67aefaa

          gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/37547/ Subject: LU-13246 osd: unlock os_lock if it was locked Project: fs/lustre-release Branch: master Current Patch Set: Commit: a9b9dd8312417fcb82513108f11b4684b67aefaa

          I verified this adding an assrtion which got hit:

          LustreError: 419:0:(osd_scrub.c:1750:osd_otable_it_next()) ASSERTION( locked == 0 ) failed: 

          i.e. the spinlock was taken, but wasn't released.

          bzzz Alex Zhuravlev added a comment - I verified this adding an assrtion which got hit: LustreError: 419:0:(osd_scrub.c:1750:osd_otable_it_next()) ASSERTION( locked == 0 ) failed: i.e. the spinlock was taken, but wasn't released.

          Alex Zhuravlev (bzzz@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/37547
          Subject: LU-13246 osd: unlock os_lock if it was locked
          Project: fs/lustre-release
          Branch: master
          Current Patch Set: 1
          Commit: 38199085fb3720518e21aecc694961d359e99ec9

          gerrit Gerrit Updater added a comment - Alex Zhuravlev (bzzz@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/37547 Subject: LU-13246 osd: unlock os_lock if it was locked Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 38199085fb3720518e21aecc694961d359e99ec9

          People

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

            Dates

              Created:
              Updated:
              Resolved: