1. 29 Aug, 2022 2 commits
    • Ozan Tezcan's avatar
      Simplify entry removal (#130) · c0270e61
      Ozan Tezcan authored
      Simplied pop callback.
      
      Previously, libraft was passing a callback(raft_entry_notify_f) to the pop callback.
      The application was supposed to call that callback for each removed entry.
      
      Libraft can loop over the entries and call the required functions itself.
      So, we can delete raft_entry_notify_f from the pop callback just to
      simplify API.
      
      In addition to that, this PR removes raft_pop_entry() function which doesn't have
      a use-case, as far as I can see.
      We can use raft_delete_entry_from_idx(me, raft_get_current_idx()) instead if required.
      c0270e61
    • Ozan Tezcan's avatar
      Fix style (#128) · 21844ec6
      Ozan Tezcan authored
      Fix style issues in raft_log.c raft_node.c and raft_server_properties.c
      21844ec6
  2. 02 May, 2022 1 commit
  3. 30 Mar, 2022 1 commit
  4. 24 Mar, 2022 1 commit
  5. 13 Mar, 2022 1 commit
  6. 07 Feb, 2022 1 commit
  7. 19 Aug, 2021 1 commit
  8. 09 Dec, 2018 1 commit
  9. 06 Dec, 2018 1 commit
  10. 16 Oct, 2018 1 commit
    • Yossi Gottlieb's avatar
      Fix a memory leak with log_clear. · 89d793a0
      Yossi Gottlieb authored
      This is probably most common when loading a snapshot.  Currently it is
      only possibly to free allocated entry memory on log_pop and log_poll,
      but neither are called on log_reset().
      
      This is a quick and non-breaking fix.  A better but not backward
      compatible option can be to have a free function callback as part of
      the entry itself (automatically called when needed, not by log_pop or
      log_poll).  This would also make it easier to avoid redundant buffer
      allocs/copies on the app side.
      89d793a0
  11. 20 Jun, 2018 2 commits
  12. 07 Jun, 2018 2 commits
    • Willem Thiart's avatar
      Remove RAFT_LOGTYPE_SNAPSHOT · 700eebe6
      Willem Thiart authored
      The RAFT_LOGTYPE_SNAPSHOT was a bad design choice. It's better to not
      have this marker entry so that users don't have to check for the log
      entry type in the callbacks. Also, loading a snapshot correctly created
      this marker entry, but the compaction side did not. It's better to
      remove this log type than to fix this asymmetry.
      
      Fixes the following edge cases:
      - Server crashes if the last snapshot index is N and a appendentries
      message pops entries all the way back to index N.
      - Server sends an appendentries message with an invalid prev_log_idx and
      prev_log_term, causing the peer to crash.
      700eebe6
    • Yossi Gottlieb's avatar
      Off by one fixes (#65) · 9de8af47
      Yossi Gottlieb authored
      * Fix off-by-one in apply_log idx.
      
      * Fix log_get_from_idx() off by one error.
      9de8af47
  13. 24 May, 2018 2 commits
  14. 17 May, 2018 1 commit
  15. 16 May, 2018 1 commit
  16. 02 May, 2018 1 commit
  17. 04 Mar, 2018 1 commit
  18. 08 Jan, 2018 1 commit
  19. 29 Dec, 2017 1 commit
    • Willem Thiart's avatar
      Fix: log edge cases · b912ff5a
      Willem Thiart authored
      The raft_log API is now being fuzzed tested. This change fixes all of
      the bugs detected by the fuzzer so far.
      b912ff5a
  20. 21 Nov, 2017 4 commits
  21. 11 Jun, 2016 1 commit
  22. 22 May, 2016 1 commit
  23. 11 Apr, 2016 2 commits
  24. 16 Mar, 2016 3 commits
  25. 11 Feb, 2016 1 commit
  26. 01 Feb, 2016 1 commit
  27. 29 Jan, 2016 1 commit
  28. 28 Jan, 2016 1 commit
  29. 04 Nov, 2015 1 commit
  30. 15 Oct, 2015 1 commit