@@ -288,7 +288,8 @@ fn apply_join_response(
288288 // learners). A learner-started group boots in the `Learner`
289289 // role and will not run an election until a subsequent
290290 // `PromoteLearner` conf change is applied.
291- let mut multi_raft = MultiRaft :: new ( config. node_id , routing. clone ( ) , config. data_dir . clone ( ) ) ;
291+ let mut multi_raft = MultiRaft :: new ( config. node_id , routing. clone ( ) , config. data_dir . clone ( ) )
292+ . with_election_timeout ( config. election_timeout_min , config. election_timeout_max ) ;
292293 for g in & resp. groups {
293294 let is_voter = g. members . contains ( & config. node_id ) ;
294295 let is_learner = g. learners . contains ( & config. node_id ) ;
@@ -450,6 +451,8 @@ mod tests {
450451 force_bootstrap : false ,
451452 join_retry : Default :: default ( ) ,
452453 swim_udp_addr : None ,
454+ election_timeout_min : Duration :: from_millis ( 150 ) ,
455+ election_timeout_max : Duration :: from_millis ( 300 ) ,
453456 } ;
454457 let state1 = bootstrap ( & config1, & catalog1) . unwrap ( ) ;
455458
@@ -499,6 +502,8 @@ mod tests {
499502 force_bootstrap : false ,
500503 join_retry : Default :: default ( ) ,
501504 swim_udp_addr : None ,
505+ election_timeout_min : Duration :: from_millis ( 150 ) ,
506+ election_timeout_max : Duration :: from_millis ( 300 ) ,
502507 } ;
503508
504509 let lifecycle = ClusterLifecycleTracker :: new ( ) ;
0 commit comments