mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-04 23:27:09 +00:00
fix: CP13-2 — use advertisedIP (routable), not localServerID (opaque)
Bug: setupReplicaReceiver derived the advertised host from localServerID, which can be an opaque string (from -id flag, e.g., "my-custom-server-id"). This would publish unusable endpoints like "my-custom-server-id:14260". Fix: - volume_server_block.go: add advertisedIP field (always a real IP from -ip flag), use it instead of localServerID for replica canonicalization - volume.go: wire *v.ip → blockService.SetAdvertisedIP() at startup - blockvol.go: StartReplicaReceiver variadic advertisedHost unchanged Proof (sync_all_bug_test.go TestBug3, 4 sub-cases): - fallback: wildcard bind without advertisedHost → outbound-IP - advertisedHost: explicit IP appears in exported addresses - StartReplicaReceiver_API: public API forwards host correctly - opaque_identity_not_routable: proves opaque string produces non-routable address, confirming production must use advertisedIP Identity vs transport separation preserved: - localServerID: stable identity for V2 control (may be opaque) - advertisedIP: routable IP for transport endpoints (always real IP) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
2d47383df7
commit
4bdf6c604e
@@ -347,6 +347,7 @@ func (v VolumeServerOptions) startVolumeServer(volumeFolders, maxVolumeCounts, v
|
||||
// volume server. One identity truth across VS, block service, control
|
||||
// bridge, and runtime ownership.
|
||||
blockService.SetServerID(volumeServerId)
|
||||
blockService.SetAdvertisedIP(*v.ip) // CP13-2: routable IP, not opaque ID
|
||||
volumeServer.SetBlockService(blockService)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user