From d27630626a51d281bb130629b5c3275712d00119 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Mon, 17 Sep 2018 08:47:30 +0100 Subject: [PATCH] webdav: add a small pause after failed upload before deleting file #2517 This fixes the integration tests for `serve webdav` which uses the webdav backend tests. --- backend/webdav/webdav.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/webdav/webdav.go b/backend/webdav/webdav.go index 25721a9c2..187ddad23 100644 --- a/backend/webdav/webdav.go +++ b/backend/webdav/webdav.go @@ -968,6 +968,12 @@ func (o *Object) Update(in io.Reader, src fs.ObjectInfo, options ...fs.OpenOptio return shouldRetry(resp, err) }) if err != nil { + // Give the WebDAV server a chance to get its internal state in order after the + // error. The error may have been local in which case we closed the connection. + // The server may still be dealing with it for a moment. A sleep isn't ideal but I + // haven't been able to think of a better method to find out if the server has + // finished - ncw + time.Sleep(1 * time.Second) // Remove failed upload _ = o.Remove() return err