Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-1938

Hang in __wt_log_slot_join

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.6.1
    • Affects Version/s: WT2.6.0
    • Component/s: None
    • Labels:
      None

      After a seemingly innocuous change (https://github.com/wiredtiger/wiredtiger/commit/57a103372f4ad5a763978d3a9aa0cc5e69ab635b), __wt_log_slot_join started hanging.

      On further investigation, it turns out the code was relying on a side effect of calling __wt_random that the compiler couldn't figure out what slot would be used at compile time. After the change, optimized builds were caching the value of slot->slot_state and never noticing when the slot became available.

      We need to force slot->slot_state to be read each iteration by marking the field volatile.

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: