mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-19 13:46:58 +00:00
Replace three bypass mechanisms with one unified model. When the probe returns ProbeRebuildRequired, the host now starts the rebuild through the existing recovery manager (StartRecoveryTask), which resolves the rebuild address, plans the rebuild, and executes via the v2bridge executor — the same path as master-driven RoleRebuilding. New per-replica probe API: - WALShipper.ProbeReconnect() → ReplicaProbeResult with typed outcome - ShipperGroup.ProbeReconnectAll() → []ReplicaProbeResult - BlockVol.ProbeReplicaOnboarding() / IsClosed() Host-side wiring: - handleReplicaProbeResult routes outcomes: KeepUp → ShipperConnectedObserved CatchUp → ShipperConnectedObserved (recovery manager handles session) Rebuild → NeedsRebuildObserved + StartRecoveryTask (executes rebuild) TemporaryFailure → no-op - lastAssignmentsForPath reconstructs assignment for recovery manager - onPrimaryRosterChanged probes all replicas (defined, called from watchdog) - observePrimaryShipperConnectivity uses probe API Probe fires via syncProtocolExecutionState immediately after assignment processing — same heartbeat cycle, no timer delay. Deleted: startDirectRebuild, resolveCtrlAddrForShipper, TryReconnect/TryReconnectAll/TryReconnectShippers. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>