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

obd_get_mod_rpc_slot() is vulnerable to races

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: