1. 04 Oct, 2018 1 commit
  2. 27 Sep, 2018 1 commit
    • Yossi Gottlieb's avatar
      AE error response not properly handled. · 5e336b8f
      Yossi Gottlieb authored
      Errors were ignored if node's match_idx==next_idx-1, I assume (??) as a
      precaution against silently feeding a node that is not monotonic.
      
      However this does not consider the case where send_appendentries()
      relies on snapshot_last_idx which may be greater than the node's index.
      5e336b8f
  3. 15 Aug, 2018 1 commit
  4. 07 Aug, 2018 1 commit
  5. 30 Jul, 2018 1 commit
    • Yossi Gottlieb's avatar
      Add raft_cancel_snapshot(). · 074091c1
      Yossi Gottlieb authored
      This cancels the snapshot operation and reverts back to the state we
      were in before raft_begin_snapshot().
      
      It is useful for cases where the snapshot operation fails.  It is the
      caller's responsibility to make sure the FSM state remains intact of
      course.
      074091c1
  6. 12 Jul, 2018 2 commits
  7. 20 Jun, 2018 2 commits
  8. 13 Jun, 2018 2 commits
  9. 11 Jun, 2018 3 commits
    • Yossi Gottlieb's avatar
      Ignore RequestVote when leader is established. (#58) · ab96a768
      Yossi Gottlieb authored
      This behavior is described in the original Raft paper and is required to
      prevent removed nodes from disrupting the cluster.
      
      This causes other problems though, as a split node may trigger election
      which is rejected but leaves it with a future term.  The generally
      accepted solution for this appears to be the use of PreVote RPC to avoid
      election that can never succeed.
      ab96a768
    • Willem Thiart's avatar
      Add virtraft2 · aa3586ff
      Willem Thiart authored
      aa3586ff
    • Willem Thiart's avatar
      Add notify_membership_event callback · 3ff2682d
      Willem Thiart authored
      This is an optional callback.
      
      This is useful for the user to know when a node has been added/removed,
      so that something like raft_node_set_udata can be set properly.
      3ff2682d
  10. 08 Jun, 2018 1 commit
  11. 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
  12. 17 May, 2018 4 commits
  13. 16 May, 2018 3 commits
  14. 08 Jan, 2018 2 commits
  15. 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
  16. 21 Nov, 2017 11 commits
  17. 20 Nov, 2017 2 commits