mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-20 13:30:46 +02:00
Bug: SetReplicaAddrs created fresh shippers (hasFlushedProgress=false), so after disconnect, the new shipper used bootstrap instead of reconnect handshake. Bootstrap doesn't replay missed WAL entries — barrier hung. Fix: - blockvol.go: SetReplicaAddrs checks if old shipper group had durable progress (AnyHasFlushedProgress). If so, seeds new shippers with hasFlushedProgress=true → they use reconnect handshake + catch-up. - shipper_group.go: add AnyHasFlushedProgress() helper. 3 baseline FAILs now PASS: - ReconnectUsesHandshakeNotBootstrap: reconnect path used, not bootstrap - CatchupMultipleDisconnects: repeated disconnect/reconnect recovers - CatchupDoesNotOverwriteNewerData: catch-up completes, safety exercised 7 tests promoted to CP13-5 primary proof. TestAdversarial_NeedsRebuildBlocksAllPaths still FAIL (CP13-7 scope). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>