github-actions[bot] commented on code in PR #68302:
URL: https://github.com/apache/doris/pull/68302#discussion_r4059134301


##########
fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java:
##########
@@ -3359,6 +3366,17 @@ protected synchronized void runOneCycle() {
                             break;
                     } // end switch formerFeType
 
+                    if (!transferCompleted) {
+                        // feType represents the last fully initialized FE 
state, not merely the latest state
+                        // reported by BDB. A non-master transition can be 
interrupted when a newer BDB state is

Review Comment:
   [P1] The retained state makes the UNKNOWN interruption path unsafe. 
`transferToNonMaster()` sets `isReady=false` and returns false, but while the 
queued UNKNOWN is waiting the replayer can set `canRead/isReady=true`; because 
`feType` is still INIT/UNKNOWN, the UNKNOWN no-op/equality branch skips the 
existing FOLLOWER/OBSERVER->UNKNOWN reset. `waitForReady()` can then start FE 
services and `StmtExecutor` will not forward queries even though auth/catalog 
post-processing, non-master daemons, metrics, and `FollowerColumnSender` have 
not run. Please keep the not-ready/non-serving gate until initialization 
completes and add an INIT/UNKNOWN -> FOLLOWER test interrupted by UNKNOWN (plus 
a later retry).



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to