1. 16 Jun, 2020 4 commits
  2. 15 Jun, 2020 1 commit
  3. 23 May, 2020 1 commit
  4. 21 May, 2020 1 commit
  5. 03 May, 2020 1 commit
  6. 30 Apr, 2020 2 commits
  7. 28 Apr, 2020 1 commit
    • Josh Rickmar's avatar
      Fix incorrect unsafe usage · f9d3ff66
      Josh Rickmar authored
      After checkptr fixes by 2fc6815c, it was discovered that new issues
      were hit in production systems, in particular when a single process
      opened and updated multiple separate databases.  This indicates that
      some bug relating to bad unsafe usage was introduced during this
      commit.
      
      This commit combines several attempts at fixing this new issue.  For
      example, slices are once again created by slicing an array of "max
      allocation" elements, but this time with the cap set to the intended
      length.  This operation is espressly permitted according to the Go
      wiki, so it should be preferred to type converting a
      reflect.SliceHeader.
      f9d3ff66
  8. 24 Apr, 2020 1 commit
  9. 06 Apr, 2020 1 commit
    • James Ravn's avatar
      Clarify transaction section (#59) · 6dc724cf
      James Ravn authored
      Even nested read-only transactions can cause deadlocks. This is due to golang's RWMutex behaviour.
      It doesn't allow readers to acquire a lock if a write lock is pending. It's possible for a child read-only
      transaction to block trying to acquire `mmaplock.RLock`, while a writer is trying to acquire
      `mmaplock.Lock`. As a result, the parent transaction never releases its read lock on `mmaplock`, and the
      application deadlocks.
      
      This wasn't clear to me from the provided docs, which just mentions read/write and read transactions being nested.
      6dc724cf
  10. 24 Mar, 2020 2 commits
  11. 19 Mar, 2020 6 commits
  12. 13 Mar, 2020 1 commit
  13. 04 Mar, 2020 1 commit
  14. 21 Jan, 2020 1 commit
  15. 06 Jan, 2020 1 commit
  16. 28 Nov, 2019 1 commit
  17. 22 Nov, 2019 1 commit
  18. 20 Nov, 2019 1 commit
  19. 01 Oct, 2019 1 commit
  20. 25 Sep, 2019 1 commit
  21. 17 Sep, 2019 1 commit
  22. 09 Sep, 2019 1 commit
  23. 09 Aug, 2019 1 commit
  24. 06 Aug, 2019 2 commits
  25. 01 Jul, 2019 1 commit
  26. 27 Jun, 2019 1 commit
  27. 08 Jun, 2019 1 commit
  28. 28 May, 2019 1 commit
  29. 27 May, 2019 1 commit