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

incorrect locking order in ofd_preprw_write()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • None
    • Upstream
    • None
    • 3
    • 9223372036854775807

    Description

      found in one customer report:

      Call Trace:
      [<ffffffffac5bd474>] __lock_page+0x74/0x90				objlock - lockpage
      [<ffffffffac5be1e4>] __find_lock_page+0x54/0x70
      [<ffffffffac5bee64>] find_or_create_page+0x34/0xa0
      [<ffffffffc131be97>] osd_bufs_get+0x487/0xb20 [osd_ldiskfs]
      [<ffffffffc16c6266>] ofd_preprw_write.isra.27+0x536/0x10c0 [ofd]
      [<ffffffffc16c720e>] ofd_preprw+0x41e/0x8c0 [ofd]
      [<ffffffffc0e74ddc>] tgt_brw_write+0xd2c/0x1d60 [ptlrpc]
      
      Call Trace:
      [<ffffffffac797dc7>] call_rwsem_down_write_failed+0x17/0x30		trunc - start - objlock
      [<ffffffffc12f0e9c>] osd_write_lock+0x5c/0xe0 [osd_ldiskfs]
      [<ffffffffc16bfb04>] ofd_object_punch+0x6c4/0xcb0 [ofd]
      [<ffffffffc16aa3cf>] ofd_punch_hdl+0x4df/0xa90 [ofd]
      
      Call Trace:
      [<ffffffffacb88e79>] schedule+0x29/0x70
      [<ffffffffc0442085>] wait_transaction_locked+0x85/0xd0 [jbd2]		lockpage - trunc - start
      [<ffffffffc0442378>] add_transaction_credits+0x278/0x310 [jbd2]
      [<ffffffffc0442601>] start_this_handle+0x1a1/0x430 [jbd2]
      [<ffffffffc0442ab3>] jbd2__journal_start+0xf3/0x1f0 [jbd2]
      [<ffffffffc12fd0de>] osd_trans_start+0x20e/0x4e0 [osd_ldiskfs]
      [<ffffffffc16c32bc>] ofd_commitrw_write+0x11dc/0x1da0 [ofd]
      [<ffffffffc16c7b29>] ofd_commitrw+0x479/0xe20 [ofd]
      [<ffffffffc0e750d6>] tgt_brw_write+0x1026/0x1d60 [ptlrpc]
      

      the root cause is that ofd_preprw_write() takes a lock on the object first, then locks pages.

      introduced with LU-10048 ofd: take local locks within transaction

      Attachments

        Activity

          People

            wc-triage WC Triage
            bzzz Alex Zhuravlev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: