From 73f2069335e03b015777d658af3a92f20aa93485 Mon Sep 17 00:00:00 2001 From: "Jeffrey N. Johnson" Date: Fri, 12 Dec 2025 09:37:37 -0800 Subject: [PATCH 1/3] Fixes an issue with repeated transfers requested upon completion of staging. --- services/version.go | 2 +- transfers/stager.go | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/services/version.go b/services/version.go index 4f8fd464..5c128135 100644 --- a/services/version.go +++ b/services/version.go @@ -7,7 +7,7 @@ import ( // Version numbers var majorVersion = 0 var minorVersion = 10 -var patchVersion = 2 +var patchVersion = 3 // Version string var version = fmt.Sprintf("%d.%d.%d", majorVersion, minorVersion, patchVersion) diff --git a/transfers/stager.go b/transfers/stager.go index bab6f59b..05f800a5 100644 --- a/transfers/stager.go +++ b/transfers/stager.go @@ -274,13 +274,11 @@ func (s *stagerState) updateStatus(transferId uuid.UUID, staging stagingEntry) ( if err != nil { slog.Error(err.Error()) } - } - } - - if newStatus.Code == TransferStatusActive { - if err := mover.MoveFiles(transferId); err != nil { - return completed, err + if newStatus.Code == TransferStatusActive { + if err := mover.MoveFiles(transferId); err != nil { + return completed, err + } } } return completed, nil From 26fadc48ed5e4ffee7850a3a63cd8bd84cc866aa Mon Sep 17 00:00:00 2001 From: "Jeffrey N. Johnson" Date: Fri, 12 Dec 2025 13:00:19 -0800 Subject: [PATCH 2/3] Checking for duplicate transfer (file move) requests. --- transfers/mover.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/transfers/mover.go b/transfers/mover.go index 4856f084..37071c8e 100644 --- a/transfers/mover.go +++ b/transfers/mover.go @@ -138,11 +138,15 @@ func (m *moverState) process(decoder *gob.Decoder) { for running { select { case transferId := <-m.Channels.RequestMove: - moves, err := m.moveFiles(transferId) - if err == nil { - moveOperations[transferId] = moves + if _, found := moveOperations[transferId]; !found { + moves, err := m.moveFiles(transferId) + if err == nil { + moveOperations[transferId] = moves + } + m.Channels.Error <- err + } else { + m.Channels.Error <- fmt.Errorf("File move for transfer %s previously requested!", transferId.String()) } - m.Channels.Error <- err case transferId := <-m.Channels.RequestCancellation: if moves, found := moveOperations[transferId]; found { err := m.cancel(moves) From 6afb8ee04f37cfd6facb085afae8eab02efeb81d Mon Sep 17 00:00:00 2001 From: "Jeffrey N. Johnson" Date: Thu, 18 Dec 2025 10:41:04 -0800 Subject: [PATCH 3/3] Fixed an issue identified by static analysis. --- transfers/mover.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transfers/mover.go b/transfers/mover.go index 37071c8e..f9799539 100644 --- a/transfers/mover.go +++ b/transfers/mover.go @@ -145,7 +145,7 @@ func (m *moverState) process(decoder *gob.Decoder) { } m.Channels.Error <- err } else { - m.Channels.Error <- fmt.Errorf("File move for transfer %s previously requested!", transferId.String()) + m.Channels.Error <- fmt.Errorf("file move for transfer %s previously requested", transferId.String()) } case transferId := <-m.Channels.RequestCancellation: if moves, found := moveOperations[transferId]; found {