@@ -453,10 +453,12 @@ static void raft_beat(raft_t r, int dst) {
453
453
if (p -> acked .entries < RAFT_LOG_FIRST_INDEX (r )) {
454
454
// The peer has woken up from anabiosis. Send the first
455
455
// log entry (which is usually a snapshot).
456
+ debug ("sending the snapshot to %d\n" , dst );
456
457
sendindex = RAFT_LOG_FIRST_INDEX (r );
457
458
assert (RAFT_LOG (r , sendindex ).snapshot );
458
459
} else {
459
460
// The peer is a bit behind. Send an update.
461
+ debug ("sending update %d snapshot to %d\n" , p -> acked .entries , dst );
460
462
sendindex = p -> acked .entries ;
461
463
}
462
464
m -> snapshot = RAFT_LOG (r , sendindex ).snapshot ;
@@ -474,9 +476,11 @@ static void raft_beat(raft_t r, int dst) {
474
476
m -> empty = false;
475
477
m -> offset = p -> acked .bytes ;
476
478
m -> len = min (r -> config .chunk_len , m -> totallen - m -> offset );
479
+ assert (m -> len > 0 );
477
480
memcpy (m -> data , e -> update .data + m -> offset , m -> len );
478
481
} else {
479
482
// The peer is up to date. Send an empty heartbeat.
483
+ debug ("sending empty heartbeat to %d\n" , dst );
480
484
m -> empty = true;
481
485
m -> len = 0 ;
482
486
}
@@ -815,6 +819,7 @@ static void raft_handle_update(raft_t r, raft_msg_update_t *m) {
815
819
);
816
820
raft_peer_t * p = r -> peers + sender ;
817
821
p -> acked .entries = r -> log .acked ;
822
+ p -> acked .bytes = 0 ;
818
823
}
819
824
820
825
if (!m -> empty ) {
@@ -888,7 +893,7 @@ static void raft_handle_done(raft_t r, raft_msg_done_t *m) {
888
893
peer -> applied = m -> applied ;
889
894
890
895
if (m -> success ) {
891
- debug ("[from %d] ============= done\n" , sender );
896
+ debug ("[from %d] ============= done (%d, %d) \n" , sender , m -> progress . entries , m -> progress . bytes );
892
897
peer -> acked = m -> progress ;
893
898
peer -> silent_ms = 0 ;
894
899
} else {
0 commit comments