1. 02 May, 2019 1 commit
  2. 30 Apr, 2019 6 commits
  3. 29 Apr, 2019 12 commits
  4. 27 Apr, 2019 2 commits
  5. 26 Apr, 2019 5 commits
    • Martin Blix Grydeland's avatar
      Fix the order of HSH_Fail() and ObjSetState() · 501246e9
      Martin Blix Grydeland authored
      The previous patch 4130055c went a bit too
      far in it's mission to reorder events, and included putting HSH_Fail()
      after ObjSetState(). That caused problems for code looking at the
      OC_F_FAILED to learn about failed fetches.
      
      Change the order of this back to normal, and move the call to HSH_Fail()
      into ObjSetState(), so that the order can be shown and the caveats
      properly commented.
      501246e9
    • Martin Blix Grydeland's avatar
      Revert "Remove a racy assert" · 865df54a
      Martin Blix Grydeland authored
      This reverts commit 462eab25.
      
      That assert was there for a good reason.
      865df54a
    • Martin Blix Grydeland's avatar
      Remove a racy assert · 462eab25
      Martin Blix Grydeland authored
      With the recent changes where HSH_Unbusy/HSH_Fail is called after
      ObjSetState, this assert becomes racy. Remove the assert.
      462eab25
    • Martin Blix Grydeland's avatar
      Tune test cases c97-c99 · 5db61e04
      Martin Blix Grydeland authored
      This reverts some of the previous attempts to get these test cases stable,
      as those attempts actually prevented the testing of the desired code
      paths.
      
      Also make the test cases wait until the required requests are on the
      waitinglist before continuing.
      5db61e04
    • Martin Blix Grydeland's avatar
      Resolve race on waitinglist rushing between OC_F_BUSY and boc->state · 4130055c
      Martin Blix Grydeland authored
      When an object is ready for delivery, HSH_Unbusy was called before calling
      ObjSetState([BOS_STREAM|BOS_FINISHED]). The HSH_Unbusy() call does the
      waitinglist rushing, but HSH_Lookup() wanted to look at the boc->state and
      if BOS_STREAM had been reached. This could cause requests woken to find
      that the stream state still hadn't been reached (ObjSetState still hadn't
      executed), and go back on the waitinglist.
      
      To fix this, this patch reverts commit
      0375791c, and goes back to considering
      OC_F_BUSY as the gate keeper for HSH_Lookup. This eliminates the race,
      because HSH_Unbusy and HSH_Lookup then uses the same mutex.
      
      That change opens up the possiblity that req code after HSH_Lookup() sees
      an object that has not yet reached BOS_STREAM. In order to not have to add
      new ObjWaitState() calls (with the additional locking cost that would
      bring) to wait for BOS_STREAM, the order of events is changed throughout,
      and calls ObjSetState([BOS_STREAM|BOS_FINISHED]) before HSH_Unbusy(). That
      way, an object returned from HSH_Lookup() is guaranteed to be at least
      BOS_STREAM.
      4130055c
  6. 25 Apr, 2019 2 commits
  7. 24 Apr, 2019 12 commits