175175#define COMMENT_INIT_TO_REPORT_LSN \
176176 "Creating a new node from a standby node that is not a candidate."
177177
178+ #define COMMENT_DROPPED_TO_REPORT_LSN \
179+ "This node is being reinitialized after having been dropped"
180+
178181#define COMMENT_ANY_TO_DROPPED \
179182 "This node is being dropped from the monitor"
180183
@@ -200,7 +203,7 @@ KeeperFSMTransition KeeperFSM[] = {
200203 */
201204 { INIT_STATE , SINGLE_STATE , COMMENT_INIT_TO_SINGLE , & fsm_init_primary },
202205 { DROPPED_STATE , SINGLE_STATE , COMMENT_INIT_TO_SINGLE , & fsm_init_primary },
203-
206+ { DROPPED_STATE , REPORT_LSN_STATE , COMMENT_DROPPED_TO_REPORT_LSN , & fsm_init_from_standby },
204207
205208 /*
206209 * The previous implementation has a transition from any state to the INIT
@@ -362,7 +365,7 @@ KeeperFSMTransition KeeperFSM[] = {
362365 { REPORT_LSN_STATE , PREP_PROMOTION_STATE , COMMENT_REPORT_LSN_TO_PREP_PROMOTION , & fsm_prepare_standby_for_promotion },
363366
364367 { REPORT_LSN_STATE , FAST_FORWARD_STATE , COMMENT_REPORT_LSN_TO_FAST_FORWARD , & fsm_fast_forward },
365- { FAST_FORWARD_STATE , PREP_PROMOTION_STATE , COMMENT_FAST_FORWARD_TO_PREP_PROMOTION , & fsm_cleanup_and_resume_as_primary },
368+ { FAST_FORWARD_STATE , PREP_PROMOTION_STATE , COMMENT_FAST_FORWARD_TO_PREP_PROMOTION , & fsm_cleanup_as_primary },
366369
367370 { REPORT_LSN_STATE , JOIN_SECONDARY_STATE , COMMENT_REPORT_LSN_TO_JOIN_SECONDARY , & fsm_checkpoint_and_stop_postgres },
368371 { REPORT_LSN_STATE , SECONDARY_STATE , COMMENT_REPORT_LSN_TO_JOIN_SECONDARY , & fsm_follow_new_primary },
@@ -513,6 +516,7 @@ keeper_fsm_reach_assigned_state(Keeper *keeper)
513516 {
514517 bool ret = false;
515518
519+ /* avoid logging "#any state#" to the user */
516520 if (transition .current != ANY_STATE )
517521 {
518522 log_info ("FSM transition from \"%s\" to \"%s\"%s%s" ,
@@ -551,10 +555,19 @@ keeper_fsm_reach_assigned_state(Keeper *keeper)
551555 }
552556 else
553557 {
554- log_error ("Failed to transition from state \"%s\" "
555- "to state \"%s\", see above." ,
556- NodeStateToString (transition .current ),
557- NodeStateToString (transition .assigned ));
558+ /* avoid logging "#any state#" to the user */
559+ if (transition .current != ANY_STATE )
560+ {
561+ log_error ("Failed to transition from state \"%s\" "
562+ "to state \"%s\", see above." ,
563+ NodeStateToString (transition .current ),
564+ NodeStateToString (transition .assigned ));
565+ }
566+ else
567+ {
568+ log_error ("Failed to transition to state \"%s\", see above." ,
569+ NodeStateToString (transition .assigned ));
570+ }
558571 }
559572
560573 return ret ;
0 commit comments