lablup / lablup/raftify

Node removed from cluster fails to terminate disrupting cluster operations when `tick_interval` is 0.1

Open
#154 0 comments 0 reactions 0 assignees View on GitHub
bug need investigation ossca-24
Dominant language
Rust
Stars
44
Forks
14
PR merge metrics
No merged PRs in 30d

Description

This situation should not occur in the current raftify code. In a `3-node Rust example` code, the following commands were executed from the client:
``` rust
#[actix_rt::main]
async fn main() {
let mut leader_client = create_client(&"127.0.0.1:60061").await.unwrap();
leader_client
.change_config(raft_service::ChangeConfigArgs {
addrs: vec!["127.0.0.1:60062".to_owned()],
changes: vec![ConfChangeSingle {
node_id: 2,
change_type: ConfChangeType::RemoveNode as i32,
}],
})
.await
.expect("Change config failed!");
}
```
The issue occurs when `tick_interval` is set to 0.1: a node removed from the cluster does not terminate and continues to disrupt the cluster's operations. Interestingly, this problem does not occur when the tick_interval is slightly larger.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the 3-node Rust example and reproduce the configuration change using tick_interval set to 0.1, then compare its behavior with a slightly larger interval. Trace the removed node's termination path and the tick handling around change_config. Done means the removed node terminates reliably and no longer disrupts cluster operations at 0.1, with regression coverage for the reported case.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.