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

Unprotected critical section in nrs_policy_stop

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: Lustre 2.8.0
    • Fix Version/s: Lustre 2.8.0
    • Labels:
    • Severity:
      3
    • Rank (Obsolete):
      9223372036854775807

      Description

      The execution flow to stopping a NRS policy is not safe, and concurrent execution of a policy' stop function can happen, leading to instant crashes.

      For instance:
      lctl set_param ost.OSS.ost_io.nrs_policies=orr
      lctl set_param ost.OSS.ost_io.nrs_policies=fifo & sleep 0.1 && \
      lctl set_param ost.OSS.ost_io.nrs_orr_quantum=32

      leads to a crash in:
      [...]
      #6 [ffff880098c99cc0] kmem_cache_destroy at ffffffff811772bc
      #7 [ffff880098c99ce0] nrs_orr_stop at ffffffffa139d8a8 [ptlrpc]
      #8 [ffff880098c99d00] nrs_policy_stop0 at ffffffffa13933cf [ptlrpc]
      #9 [ffff880098c99d20] nrs_policy_stop_primary at ffffffffa1393938 [ptlrpc]
      #10 [ffff880098c99d40] nrs_policy_start_locked at ffffffffa13940e0 [ptlrpc]
      #11 [ffff880098c99d90] nrs_policy_ctl at ffffffffa139452c [ptlrpc]
      #12 [ffff880098c99de0] ptlrpc_nrs_policy_control at ffffffffa1396092 [ptlrpc]
      [...]

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                emoly.liu Emoly Liu
                Reporter:
                hdoreau Henri Doreau (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: