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

Crash in upstream kiblnd_handle_early_rxs()

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • None
    • Upstream
    • None
    • 3
    • 9223372036854775807

      Under upstream staging commit 5a2ca43fa54f561c252c2, the list handling code in kiblnd_handle_early_rxs() got changed to list_for_each_safe(). That protects against the current thread from deleting the current entry it is looking at. It does not protect against another thread from deleting the next item in the list (which the tmp variable points to). The way this routine holds then releases a lock opens the door to other threads doing just that.

      We have triggered a crash due to this so it can in fact happen (a rare race condition).

      Please revert this commit on this routine. The change never made it to the community repo.

            dougo Doug Oucharek (Inactive)
            dougo Doug Oucharek (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: