From 8fe3757fe0ffec00e8182bd963016525c46f458a Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 12 Nov 2026 17:54:13 -0800 Subject: [PATCH] volume_move: reopen an interrupted move's source only without a target copy Co-Authored-By: Claude Opus 5.5 --- weed/operation/volume_move/volume_move.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weed/operation/volume_move/volume_move.go b/weed/operation/volume_move/volume_move.go index 2d31c791b1..21f3eb169a 100644 --- a/weed/operation/volume_move/volume_move.go +++ b/weed/operation/volume_move/volume_move.go @@ -141,7 +141,7 @@ func (m *Mover) LiveMoveVolume(ctx context.Context, volumeId needle.VolumeId, so return fmt.Errorf("mark volume %d readonly on %s: %v", volumeId, source, err) } if sourceWasWritable { - fmt.Fprintf(opts.Writer, "volume %d on %s stays readonly across restarts until the move ends; if the move is interrupted, volume.mark -node %s -volumeId %d -writable reopens it\n", volumeId, source, source, volumeId) + fmt.Fprintf(opts.Writer, "volume %d on %s stays readonly across restarts until the move ends; if the move is interrupted and %s has no copy of it, volume.mark -node %s -volumeId %d -writable reopens it, otherwise delete one copy before reopening the other\n", volumeId, source, target, source, volumeId) } targetHadVolume, targetStateKnown = m.probeVolume(ctx, volumeId, target)