fix(rustfs): bound role probe cadence#3247
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3247 +/- ##
======================================
Coverage 0.00% 0.00%
======================================
Files 152 153 +1
Lines 23792 23893 +101
======================================
- Misses 23792 23893 +101 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Design review is clear for the exact v5 contract:
Evidence boundary: cadence remains a falsifiable addon hypothesis. Static/design evidence does not establish runtime or product PASS. Fresh focused runtime starts at N=0; a single focused PASS is scoped N=1, and a second independent same-topology sample is required to close the r05/r06-shaped issue. |
|
Runtime hypothesis update — PR returned to Draft. Tester-reported fresh r07 reached the predeclared v5 falsification terminal: exact 4/4 Pods were Ready and labeled Per the reviewed contract, this single fresh sample falsifies the claim that roleProbe cadence Do not merge this PR as a runtime-validated fix. Static tests remain valid as tests of the proposed cadence behavior, but the runtime-fix hypothesis is no longer supported. |
|
Independent evidence verification completed.
The originals confirm cadence This supports routing to the KubeBlocks control-plane InstanceSet Pod-watch/status-projection branch. It does not identify a specific controller code root cause and does not establish a RustFS data-path failure. PR remains Draft. |
|
Correction: the earlier r07 runtime-falsification conclusion is withdrawn. Controller-owner source review found that the exact live KubeBlocks v1.0.0 contract does not define Therefore, 31 successful reads showing no PR remains Draft. No second sample, workload mutation, or addon workaround will occur while the observation contract is corrected. |
|
Correct-field continuation completed and independently verified.
Two raw, unfiltered InstanceSet snapshots were taken about 62 seconds apart. Both have the same UID This satisfies the controller owner's correct v1.0.0 branch for a Layer 4 candidate ( |
|
Read-only CRD/controller continuation completed and independently verified.
The live InstanceSet CRD has UID The manager log archive contains 1,068 raw lines. The eight exact Current branch: live CRD/installation drift candidate. Specific root cause remains undetermined and no CRD patch or reconcile trigger is authorized. Accepted runtime N remains 0; PR stays Draft. |
|
Controller-owner terminal classification: Layer 3 controller/CRD version skew in this test environment. The live manager is the official KubeBlocks v1.0.0 binary. That source contract writes roles to This explains the observations directly: the old controller's Scope: one directly observed environment/scene. This is sufficient as that environment's first blocker, but it is not generalized to other environments or releases. It is not a RustFS/addon/data-path bug and not a new v1.0.0 Pod-watch defect. Disposition: keep this PR Draft. r07 is N=0 and cannot validate the cadence change. The environment must align the manager image and the complete KubeBlocks CRD set to one exact release/commit; do not patch a single CRD field or add an addon workaround. A fresh, version-consistent scene is required before role-projection N=1 can be evaluated. |
|
Environment alignment gate is now independently accepted, but this does not add a runtime sample. Evidence pack: Raft attachment Independent checks:
Scope: |
Problem
In two independent RustFS beta.10 focused runs (r05 and r06), all four Pods were Ready,
/health/livesucceeded, roleProbe/Pod label wasreadwrite, and restart count stayed zero. Both runs stopped at the SB01 Cluster Running gate and did not enter S3 data-path validation.The first role event arrived after the last InstanceSet status reconcile;
instanceStatus[].roleremained empty and Component/Cluster stayed Creating for 1500 seconds. This N=2 evidence proves that the role-publication control-plane chain did not converge in that exact scene. It does not yet prove cadence is the only cause, and it is not a RustFS data-path or release-wide claim.Falsifiable addon-side candidate
periodSeconds: 1andtimeoutSeconds: 3onlifecycleActions.roleProbe;readwrite/notreadystdout semantics unchanged.Contract anchors:
kubeblocks-addon-docs/docs/addon-api/05a-lifecycle-roles-and-probe.mdkubeblocks-addon-docs/docs/addon-api/05c-lifecycle-action-contracts.mdThe fresh runtime gate must separately observe role event -> Pod role label -> InstanceSet
instanceStatus[].role-> Component Running -> Cluster Running. If event/label updates but InstanceSet role remains empty, the candidate is falsified and the first blocker moves to the control-plane branch.TDD and local verification
periodSeconds must be 1, got nil;git diff --checkpass.Runtime boundary
Local checks prove chart/render and command-branch contracts only. They do not prove event scheduling, reconcile timing, CPU/throttle behavior, runtime convergence, or S3 behavior. Jean owns candidate packaging and real Kubernetes validation. r05/r06 remain diagnostic evidence only; acceptance count restarts on the new exact candidate.
Related RustFS PR audit
PR #3200 is the current separate scale-up parity guard and is intentionally not duplicated in this PR. The runtime candidate branch includes its current exact patch set separately and records both pins.