From b45d77b6beaf5dad93528caf100224bccefc5a4a Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Mon, 6 May 2019 20:55:26 +0200 Subject: [PATCH] lib/model: Fix regression deleting directories on pull (ref #5690) (#5691) --- lib/model/folder_sendrecv.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/model/folder_sendrecv.go b/lib/model/folder_sendrecv.go index b5229455..6ebae871 100644 --- a/lib/model/folder_sendrecv.go +++ b/lib/model/folder_sendrecv.go @@ -513,13 +513,15 @@ func (f *sendReceiveFolder) processDeletions(fileDeletions map[string]protocol.F } } - for _, dir := range dirDeletions { + // Process in reverse order to delete depth first + for i := range dirDeletions { select { case <-f.ctx.Done(): return default: } + dir := dirDeletions[len(dirDeletions)-i-1] f.resetPullError(dir.Name) l.Debugln(f, "Deleting dir", dir.Name) f.deleteDir(dir, dbUpdateChan, scanChan)