Skip to content

join request failed: not a leader

Проблема, аналогичная #144 (closed), может произойти в соседнем месте в коде — в start_join().

https://git.picodata.io/picodata/picodata/picodata/-/blob/5a46769af0f8e3e939450b9cd9dc260a1d254f4f/src/main.rs#L824

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".

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information