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]