What's wrong
VineyardEngine.CheckRuntimeReady() in pkg/ddc/vineyard/runtime_info.go is an unimplemented stub:
func (e *VineyardEngine) CheckRuntimeReady() (ready bool) {
//TODO implement me
return true
}
This means data operations (DataLoad, DataMigrate, DataProcess) will be dispatched against a VineyardRuntime even when workers are not actually ready, potentially causing failures.
Impact
CheckRuntimeReady() is called in pkg/ddc/base/operation.go before executing data operations. Returning true unconditionally bypasses this gate entirely for VineyardRuntime.
Proposed fix
Implement it using the existing CheckWorkersReady() helper, same as the fix applied to ThinEngine in #6062. Fuse readiness is intentionally excluded because fluid treats fuse as always-ready by design (pkg/ctrl/fuse.go: "fluid assumes fuse components are always ready") — checkFuseHealthy() delegates to CheckAndSyncFuseStatus which unconditionally returns ready = true.
I'd like to work on this.
What's wrong
VineyardEngine.CheckRuntimeReady()inpkg/ddc/vineyard/runtime_info.gois an unimplemented stub:This means data operations (DataLoad, DataMigrate, DataProcess) will be dispatched against a VineyardRuntime even when workers are not actually ready, potentially causing failures.
Impact
CheckRuntimeReady()is called inpkg/ddc/base/operation.gobefore executing data operations. Returningtrueunconditionally bypasses this gate entirely for VineyardRuntime.Proposed fix
Implement it using the existing
CheckWorkersReady()helper, same as the fix applied to ThinEngine in #6062. Fuse readiness is intentionally excluded because fluid treats fuse as always-ready by design (pkg/ctrl/fuse.go: "fluid assumes fuse components are always ready") —checkFuseHealthy()delegates toCheckAndSyncFuseStatuswhich unconditionally returnsready = true.I'd like to work on this.