join request failed: not a leader
Проблема, аналогичная #144 (closed), может произойти в соседнем месте в коде — в start_join().
let resp: traft::JoinResponse = loop {
let now = Instant::now();
let timeout = Duration::from_secs(1);
match tarantool::net_box_call(&leader_address, ".raft_join", &req, Duration::MAX) {
Err(TntError::IO(e)) => {
tlog!(Warning, "join request failed: {e}");
fiber::sleep(timeout.saturating_sub(now.elapsed()));
continue;
}
Err(e) => {
tlog!(Error, "join request failed: {e}");
std::process::exit(-1);
}
Ok(resp) => {
break resp;
}
}
};
Если перевыборы случатся в промежуток времени между дискавери и запросом, в ответ придёт ошибка "not a leader".