• 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
raft_server.c 38.7 KB