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

obd_get_mod_rpc_slot() is vulnerable to races

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • Lustre 2.16.0, Lustre 2.15.5
    • Lustre 2.16.0
    • None
    • 3
    • 9223372036854775807

      wait_woken() called from obd_get_mod_rpc_slot() resets WQ_FLAG_WOKEN flag, but leaves the corresponding wq_entry on the list.
      __wake_up_locked_key() (called from obd_put_mod_rpc() in another thread) finds that wq_entry on the list w/o WQ_FLAG_WOKEN set, consumes one more slot (cl_mod_rpcs_in_flight++).
      this way we leak slots.
      this can be catched with sanity/182b.

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

              Created:
              Updated:
              Resolved: