Serve webdav is crashing: `fatal error: sync: unlock of unlocked mutex`

What is the problem you are having with rclone?

From time to time, rclone running on a Docker container as web DAV server, is crashing.

Run the command 'rclone version' and share the full output of the command.

rclone v1.66.0
- os/version: alpine 3.19.1 (64 bit)
- os/kernel: 3.10.108 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.22.1
- go/linking: static
- go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Microsoft OneDrive Personal

The command you were trying to run (eg rclone copy /tmp remote:tmp)

serve webdav jp_serv_union:webdav/ --checkers 20 --log-file /log/rclone_serve_webdav_jp_serv_union.log

Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.

[jp_serv]
type = onedrive
client_id = XXX
client_secret = XXX
token = XXX
drive_id = XXX
drive_type = personal

[jp_serv_00]
type = onedrive
client_id = XXX
client_secret = XXX
token = XXX
drive_id = XXX
drive_type = personal

[jp_serv_01]
type = onedrive
client_id = XXX
client_secret = XXX
token = XXX
drive_id = XXX
drive_type = personal

[jp_serv_union]
type = union
upstreams = jp_serv_00:union jp_serv_01:union jp_serv_02:union 

A log from the command that you were trying to run with the -vv flag

I did not run the command using -vv. Mostly because the error is 'random'. I will try to get the error while running -vv and post back.

2024/06/06 02:24:56 NOTICE: union root 'webdav': WebDav Server started on [http://[::]:8080/]
2024/06/06 02:25:02 ERROR : Hyper Backup/rclone_video.hbk/Control/@writer/v1.586.587.5.422.backup.commit.cinfo: Failed to copy: Put "https://graph.microsoft.com/v1.0/drives/2xxxxxxxxxxx/items/2xxxxxxxxxxx!48101:/v1.586.587.5.422.backup.commit.cinfo:/content": context canceled
2024/06/06 02:36:39 ERROR : Hyper Backup/rclone_document.hbk/Control/@writer/v1.595.596.7.190.delete_version.remove_compact_conflict_v2.cinfo: Failed to copy: Put "https://graph.microsoft.com/v1.0/drives/a2xxxxxxxxxxx/items/a2xxxxxxxxxxx!891:/v1.595.596.7.190.delete_version.remove_compact_conflict_v2.cinfo:/content": context canceled
2024/06/06 02:39:27 ERROR : Hyper Backup/rclone_docker3.hbk/Control/@writer/v1.599.600.7.186.delete_version.remove_compact_conflict_v2.cinfo: Failed to copy: Put "https://graph.microsoft.com/v1.0/drives/a2xxxxxxxxxxx/items/a2xxxxxxxxxxx!25878:/v1.599.600.7.186.delete_version.remove_compact_conflict_v2.cinfo:/content": context canceled
fatal error: sync: unlock of unlocked mutex
[signal SIGSEGV: segmentation violation code=0x1 addr=0x170 pc=0x114b65a]

goroutine 43165 [running]:
sync.fatal({0x23a7ec7?, 0xc00127f250?})
	/usr/local/go/src/runtime/panic.go:1007 +0x18
sync.(*Mutex).unlockSlow(0xc001efe508, 0xffffffff)
	/usr/local/go/src/sync/mutex.go:229 +0x35
sync.(*Mutex).Unlock(...)
	/usr/local/go/src/sync/mutex.go:223
panic({0x1f24fe0?, 0x3d931e0?})
	/usr/local/go/src/runtime/panic.go:770 +0x132
github.com/rclone/rclone/backend/onedrive/api.(*Item).IsRemote(...)
	/go/src/github.com/rclone/rclone/backend/onedrive/api/types.go:544
github.com/rclone/rclone/backend/onedrive/api.(*Item).GetFolder(...)
	/go/src/github.com/rclone/rclone/backend/onedrive/api/types.go:441
github.com/rclone/rclone/backend/onedrive.(*Object).setMetaData(0xc000ecc6e0?, 0x2afa730?)
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2096 +0x1a
github.com/rclone/rclone/backend/onedrive.(*Object).uploadSinglepart(0xc00203d580, {0x2afa730, 0xc000652c80}, {0x2adab60, 0xc0030ed700}, {0x7fe7d73353a8, 0xc001bfdaa0}, {0xc002b1cf80, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2495 +0x54a
github.com/rclone/rclone/backend/onedrive.(*Object).Update(0xc00203d580, {0x2afa730, 0xc000652c80}, {0x2adab60, 0xc0030ed700}, {0x7fe7d73353a8, 0xc001bfdaa0}, {0xc002b1cf80, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2515 +0x185
github.com/rclone/rclone/backend/onedrive.(*Fs).Put(0xc000ecc6e0, {0x2afa730, 0xc000652c80}, {0x2adab60, 0xc0030ed700}, {0x7fe7d73353a8, 0xc001bfdaa0}, {0xc002b1cf80, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1469 +0x148
github.com/rclone/rclone/backend/union/upstream.(*Fs).Put(0xc0008b41b0, {0x2afa730?, 0xc000652c80?}, {0x2adab60?, 0xc0030ed700?}, {0x7fe7d73353a8, 0xc001bfdaa0}, {0xc002b1cf80, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/union/upstream/upstream.go:204 +0xa3
github.com/rclone/rclone/backend/union.(*Fs).put(0xc0006704b0, {0x2afa730, 0xc000652c80}, {0x2adab60, 0xc0030ed700}, {0x7fe7d73353a8, 0xc001bfdaa0}, 0x0, {0xc002b1cf80, 0x1, ...})
	/go/src/github.com/rclone/rclone/backend/union/union.go:544 +0x2b5
github.com/rclone/rclone/backend/union.(*Fs).Put(0xc0006704b0, {0x2afa730, 0xc000652c80}, {0x2adab60, 0xc0030ed700}, {0x7fe7d73353a8, 0xc001bfdaa0}, {0xc002b1cf80, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/union/union.go:595 +0x127
github.com/rclone/rclone/fs/operations.(*copy).updateOrPut(0xc000f2ddd0, {0x2afa730, 0xc000652c80}, {0x2aeb4b0?, 0xc0000529a0?}, {0xc002b1cf80, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:209 +0x226
github.com/rclone/rclone/fs/operations.(*copy).manualCopy(0xc000f2ddd0, {0x2afa730, 0xc000652c80})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:262 +0x6d8
github.com/rclone/rclone/fs/operations.(*copy).copy(0xc000f2ddd0, {0x2afa730, 0xc000652c80})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:302 +0x16c
github.com/rclone/rclone/fs/operations.Copy({0x2afa730, 0xc000652c80}, {0x2b11650, 0xc0006704b0}, {0x0, 0x0}, {0xc0008d9ab0, 0x6e}, {0x2b100e0, 0xc001bfdaa0})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:404 +0x485
github.com/rclone/rclone/vfs/vfscache.(*Item)._store(0xc001efe500, {0x2afa730, 0xc000652c80}, 0xc002923440)
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:593 +0x1ce
github.com/rclone/rclone/vfs/vfscache.(*Item).store(0x40f465?, {0x2afa730?, 0xc000652c80?}, 0xc00109e901?)
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:633 +0xc5
github.com/rclone/rclone/vfs/vfscache.(*Item).Close.func2({0x2afa730?, 0xc000652c80?})
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:732 +0x2e
github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).upload(0xc0005401c0, {0x2afa730, 0xc000652c80}, 0xc000543420)
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:354 +0x128
created by github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).processItems in goroutine 43164
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:450 +0x275

goroutine 1 [semacquire, 24 minutes]:
sync.runtime_Semacquire(0xc000cba7b0?)
	/usr/local/go/src/runtime/sema.go:62 +0x25
sync.(*WaitGroup).Wait(0xc00031c4e0?)
	/usr/local/go/src/sync/waitgroup.go:116 +0x48
github.com/rclone/rclone/lib/http.(*Server).Wait(...)
	/go/src/github.com/rclone/rclone/lib/http/server.go:431
github.com/rclone/rclone/cmd/serve/webdav.init.func1.1()
	/go/src/github.com/rclone/rclone/cmd/serve/webdav/webdav.go:150 +0x88
github.com/rclone/rclone/cmd.Run(0x0, 0x0, 0x3ddd6e0, 0xc000ab9c48)
	/go/src/github.com/rclone/rclone/cmd/cmd.go:255 +0x125
github.com/rclone/rclone/cmd/serve/webdav.init.func1(0x3ddd6e0, {0xc0002f45a0?, 0x1?, 0x2355282?})
	/go/src/github.com/rclone/rclone/cmd/serve/webdav/webdav.go:140 +0x1c5
github.com/spf13/cobra.(*Command).execute(0x3ddd6e0, {0xc0002f4550, 0x5, 0x5})
	/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:983 +0xaca
github.com/spf13/cobra.(*Command).ExecuteC(0x3dcd700)
	/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:1115 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
	/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:1039
github.com/rclone/rclone/cmd.Main()
	/go/src/github.com/rclone/rclone/cmd/cmd.go:563 +0x31
main.main()
	/go/src/github.com/rclone/rclone/rclone.go:14 +0xf

goroutine 6 [select]:
go.opencensus.io/stats/view.(*worker).start(0xc00015d980)
	/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:292 +0x9f
created by go.opencensus.io/stats/view.init.0 in goroutine 1
	/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:34 +0x8d

goroutine 26 [syscall, 24 minutes]:
os/signal.signal_recv()
	/usr/local/go/src/runtime/sigqueue.go:152 +0x29
os/signal.loop()
	/usr/local/go/src/os/signal/signal_unix.go:23 +0x13
created by os/signal.Notify.func1.1 in goroutine 1
	/usr/local/go/src/os/signal/signal.go:151 +0x1f

goroutine 27 [chan receive, 24 minutes]:
github.com/rclone/rclone/fs/accounting.(*tokenBucket).startSignalHandler.func1()
	/go/src/github.com/rclone/rclone/fs/accounting/accounting_unix.go:25 +0x27
created by github.com/rclone/rclone/fs/accounting.(*tokenBucket).startSignalHandler in goroutine 1
	/go/src/github.com/rclone/rclone/fs/accounting/accounting_unix.go:22 +0xab

goroutine 219 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 216 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 214 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 215 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 223 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 221 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 43353 [select]:
net/http.(*http2ClientConn).RoundTrip(0xc0015e4f00, 0xc001cca120)
	/usr/local/go/src/net/http/h2_bundle.go:8323 +0x434
net/http.(*http2Transport).RoundTripOpt(0xc000730630, 0xc001cca120, {0x70?})
	/usr/local/go/src/net/http/h2_bundle.go:7591 +0x1b1
net/http.(*http2Transport).RoundTrip(...)
	/usr/local/go/src/net/http/h2_bundle.go:7540
net/http.http2noDialH2RoundTripper.RoundTrip({0xc00039c000?}, 0xc001cca120?)
	/usr/local/go/src/net/http/h2_bundle.go:10167 +0x1a
net/http.(*Transport).roundTrip(0xc00039c000, 0xc001cca120)
	/usr/local/go/src/net/http/transport.go:553 +0x39c
net/http.(*Transport).RoundTrip(...)
	/usr/local/go/src/net/http/roundtrip.go:17
github.com/rclone/rclone/fs/fshttp.(*Transport).RoundTrip(0xc0007ec230, 0xc001cca120)
	/go/src/github.com/rclone/rclone/fs/fshttp/http.go:278 +0x30a
golang.org/x/oauth2.(*Transport).RoundTrip(0xc00095fc20, 0xc001cca000)
	/go/pkg/mod/golang.org/x/oauth2@v0.16.0/transport.go:55 +0x3de
net/http.send(0xc001cca000, {0x2adbae0, 0xc00095fc20}, {0xc000ab7201?, 0x41a1c5?, 0x0?})
	/usr/local/go/src/net/http/client.go:259 +0x5e4
net/http.(*Client).send(0xc000ec6c90, 0xc001cca000, {0x411e26?, 0xc000ab72a8?, 0x0?})
	/usr/local/go/src/net/http/client.go:180 +0x98
net/http.(*Client).do(0xc000ec6c90, 0xc001cca000)
	/usr/local/go/src/net/http/client.go:724 +0x8dc
net/http.(*Client).Do(...)
	/usr/local/go/src/net/http/client.go:590
github.com/rclone/rclone/lib/rest.(*Client).Call(0xc000bf3cc0, {0x2afa688, 0x3e6de60}, 0xc000f9f400)
	/go/src/github.com/rclone/rclone/lib/rest/rest.go:314 +0xbf5
github.com/rclone/rclone/lib/rest.(*Client).callCodec(0xc000bf3cc0, {0x2afa688, 0x3e6de60}, 0xc00192db48?, {0x0?, 0x0?}, {0x1d914e0, 0xc0014bbec0}, 0x10?, 0x24e2700, ...)
	/go/src/github.com/rclone/rclone/lib/rest/rest.go:511 +0x3f2
github.com/rclone/rclone/lib/rest.(*Client).CallJSON(...)
	/go/src/github.com/rclone/rclone/lib/rest/rest.go:454
github.com/rclone/rclone/backend/onedrive.(*Fs)._listAll.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1196 +0x85
github.com/rclone/rclone/fs.pacerInvoker(0x1, 0xa, 0x50?)
	/go/src/github.com/rclone/rclone/fs/pacer.go:88 +0x32
github.com/rclone/rclone/lib/pacer.(*Pacer).call(0xc000e88a20, 0xc002515db0, 0xa)
	/go/src/github.com/rclone/rclone/lib/pacer/pacer.go:197 +0x7c
github.com/rclone/rclone/lib/pacer.(*Pacer).Call(0xc000e88a20, 0xc002515db0)
	/go/src/github.com/rclone/rclone/lib/pacer/pacer.go:216 +0x92
github.com/rclone/rclone/backend/onedrive.(*Fs)._listAll(0xc000ecc160, {0x2afa688, 0x3e6de60}, {0x0?, 0x0?}, 0x0, 0x0, 0xc000ab7eb0, 0xc000f9f400, {0x1d914e0, ...}, ...)
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1195 +0x165
github.com/rclone/rclone/backend/onedrive.(*Fs).listAll(0xc000ecc160, {0x2afa688, 0x3e6de60}, {0xc00278e4b0, 0x28}, 0x0, 0x0, 0xc00192deb0)
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1247 +0x1cc
github.com/rclone/rclone/backend/onedrive.(*Fs).List(0xc000ecc160, {0x2afa688, 0x3e6de60}, {0xc00363e300, 0x2d})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1292 +0xfc
github.com/rclone/rclone/backend/union.(*Fs).List.func1(0x8)
	/go/src/github.com/rclone/rclone/backend/union/union.go:684 +0x85
github.com/rclone/rclone/backend/union.multithread.func1()
	/go/src/github.com/rclone/rclone/backend/union/union.go:1048 +0x54
created by github.com/rclone/rclone/backend/union.multithread in goroutine 43270
	/go/src/github.com/rclone/rclone/backend/union/union.go:1046 +0x47

goroutine 157 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000ce3c40)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 30
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 1152 [chan receive, 24 minutes]:
github.com/rclone/rclone/lib/atexit.Register.func1.1()
	/go/src/github.com/rclone/rclone/lib/atexit/atexit.go:45 +0x29
created by github.com/rclone/rclone/lib/atexit.Register.func1 in goroutine 1
	/go/src/github.com/rclone/rclone/lib/atexit/atexit.go:44 +0x68

goroutine 218 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 139 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000ac3d40)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 29
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 43363 [chan receive]:
github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack)._cancelUpload(0xc0005401c0, 0xc000543420)
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:403 +0xa5
github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack)._remove(0xc0005401c0, 0x0?)
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:290 +0x109
github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).Remove(0x0?, 0x6d?)
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:308 +0x93
github.com/rclone/rclone/vfs/vfscache.(*Item)._remove(0xc001efe500, {0x2369fd5, 0xc})
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:881 +0x65
github.com/rclone/rclone/vfs/vfscache.(*Item).remove(0x1f14ec0?, {0x2369fd5?, 0xc003ed59d0?})
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:896 +0xa7
github.com/rclone/rclone/vfs/vfscache.(*Cache).Remove(0xc0006705a0, {0xc003ed59d0?, 0x0?})
	/go/src/github.com/rclone/rclone/vfs/vfscache/cache.go:477 +0x105
github.com/rclone/rclone/vfs.(*File).Remove(0xc0028bc480)
	/go/src/github.com/rclone/rclone/vfs/file.go:615 +0x230
github.com/rclone/rclone/vfs.(*File).RemoveAll(0xc000f64360?)
	/go/src/github.com/rclone/rclone/vfs/file.go:645 +0x13
github.com/rclone/rclone/cmd/serve/webdav.(*WebDAV).RemoveAll(0xc00031c4e0?, {0x2afa6f8?, 0xc001be6f00?}, {0xc003ed5731, 0x6f})
	/go/src/github.com/rclone/rclone/cmd/serve/webdav/webdav.go:434 +0x4e
golang.org/x/net/webdav.(*Handler).handleDelete(0xc000be3c80, {0xc0019f0138?, 0xc0017f5720?}, 0xc0008a3680)
	/go/pkg/mod/golang.org/x/net@v0.20.0/webdav/webdav.go:248 +0x2ef
golang.org/x/net/webdav.(*Handler).ServeHTTP(0xc000be3c80, {0x2af6270, 0xc0019f0138}, 0xc0008a3680)
	/go/pkg/mod/golang.org/x/net@v0.20.0/webdav/webdav.go:56 +0x1dd
github.com/rclone/rclone/cmd/serve/webdav.(*WebDAV).ServeHTTP(0xc00031c4e0, {0x2af3c20, 0xc000052ee0}, 0xc0008a3680)
	/go/src/github.com/rclone/rclone/cmd/serve/webdav/webdav.go:326 +0x1d4
github.com/go-chi/chi/v5.(*Mux).routeHTTP(0xc000bcb1a0, {0x2af3c20, 0xc000052ee0}, 0xc0008a3680)
	/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.11/mux.go:443 +0x2b4
net/http.HandlerFunc.ServeHTTP(0xc001be6ea0?, {0x2af3c20?, 0xc000052ee0?}, 0xc00080e470?)
	/usr/local/go/src/net/http/server.go:2166 +0x29
github.com/rclone/rclone/cmd/serve/webdav.newWebDAV.SetHeader.func5.1({0x2af3c20, 0xc000052ee0}, 0xc0008a3680)
	/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.11/middleware/content_type.go:13 +0x9e
net/http.HandlerFunc.ServeHTTP(0xc001be6ea0?, {0x2af3c20?, 0xc000052ee0?}, 0x23564cf?)
	/usr/local/go/src/net/http/server.go:2166 +0x29
github.com/rclone/rclone/cmd/serve/webdav.newWebDAV.SetHeader.func4.1({0x2af3c20, 0xc000052ee0}, 0xc0008a3680)
	/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.11/middleware/content_type.go:13 +0x9e
net/http.HandlerFunc.ServeHTTP(0xc0008a3560?, {0x2af3c20?, 0xc000052ee0?}, 0x2acb408?)
	/usr/local/go/src/net/http/server.go:2166 +0x29
github.com/rclone/rclone/lib/http.MiddlewareAuthBasic.basicAuth.func2.1({0x2af3c20, 0xc000052ee0}, 0xc0008a3560)
	/go/src/github.com/rclone/rclone/lib/http/middleware.go:77 +0x168
net/http.HandlerFunc.ServeHTTP(0x411e1b?, {0x2af3c20?, 0xc000052ee0?}, 0x7fe81e16a108?)
	/usr/local/go/src/net/http/server.go:2166 +0x29
github.com/rclone/rclone/lib/http.MiddlewareCORS.func2.1({0x2af3c20, 0xc000052ee0}, 0xc0008a3560)
	/go/src/github.com/rclone/rclone/lib/http/middleware.go:190 +0x332
net/http.HandlerFunc.ServeHTTP(0x2afa730?, {0x2af3c20?, 0xc000052ee0?}, 0x3d97d00?)
	/usr/local/go/src/net/http/server.go:2166 +0x29
github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0xc000bcb1a0, {0x2af3c20, 0xc000052ee0}, 0xc0008a3440)
	/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.11/mux.go:90 +0x2ee
net/http.serverHandler.ServeHTTP({0xc001be6e10?}, {0x2af3c20?, 0xc000052ee0?}, 0x6?)
	/usr/local/go/src/net/http/server.go:3137 +0x8e
net/http.(*conn).serve(0xc000fee360, {0x2afa6f8, 0xc0006caf90})
	/usr/local/go/src/net/http/server.go:2039 +0x5e8
created by net/http.(*Server).Serve in goroutine 1151
	/usr/local/go/src/net/http/server.go:3285 +0x4b4

goroutine 154 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000ce3a40)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 36
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 220 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 180 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000f9c380)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 37
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 43102 [select]:
net/http.(*http2ClientConn).RoundTrip(0xc0015e4f00, 0xc001cca480)
	/usr/local/go/src/net/http/h2_bundle.go:8323 +0x434
net/http.(*http2Transport).RoundTripOpt(0xc000730630, 0xc001cca480, {0x0?})
	/usr/local/go/src/net/http/h2_bundle.go:7591 +0x1b1
net/http.(*http2Transport).RoundTrip(...)
	/usr/local/go/src/net/http/h2_bundle.go:7540
net/http.http2noDialH2RoundTripper.RoundTrip({0xc00039c000?}, 0xc001cca480?)
	/usr/local/go/src/net/http/h2_bundle.go:10167 +0x1a
net/http.(*Transport).roundTrip(0xc00039c000, 0xc001cca360)
	/usr/local/go/src/net/http/transport.go:553 +0x39c
net/http.(*Transport).RoundTrip(...)
	/usr/local/go/src/net/http/roundtrip.go:17
github.com/rclone/rclone/fs/fshttp.(*Transport).RoundTrip(0xc0007ec230, 0xc001cca360)
	/go/src/github.com/rclone/rclone/fs/fshttp/http.go:278 +0x30a
golang.org/x/oauth2.(*Transport).RoundTrip(0xc00095fd80, 0xc001cca240)
	/go/pkg/mod/golang.org/x/oauth2@v0.16.0/transport.go:55 +0x3de
net/http.send(0xc001cca240, {0x2adbae0, 0xc00095fd80}, {0xc000ef6801?, 0x41a1c5?, 0x0?})
	/usr/local/go/src/net/http/client.go:259 +0x5e4
net/http.(*Client).send(0xc000f161e0, 0xc001cca240, {0x411e1b?, 0x1?, 0x0?})
	/usr/local/go/src/net/http/client.go:180 +0x98
net/http.(*Client).do(0xc000f161e0, 0xc001cca240)
	/usr/local/go/src/net/http/client.go:724 +0x8dc
net/http.(*Client).Do(...)
	/usr/local/go/src/net/http/client.go:590
github.com/rclone/rclone/lib/rest.(*Client).Call(0xc000eec2d0, {0x2afa730, 0xc000a767d0}, 0xc000ef6f98)
	/go/src/github.com/rclone/rclone/lib/rest/rest.go:314 +0xbf5
github.com/rclone/rclone/lib/rest.(*Client).callCodec(0xc000eec2d0, {0x2afa730, 0xc000a767d0}, 0xc000f9f680?, {0x1d915a0?, 0xc0014cb9f8?}, {0x1dc4c80, 0xc0035629d8}, 0xc000ab51d0?, 0x24e2700, ...)
	/go/src/github.com/rclone/rclone/lib/rest/rest.go:511 +0x3f2
github.com/rclone/rclone/lib/rest.(*Client).CallJSON(...)
	/go/src/github.com/rclone/rclone/lib/rest/rest.go:454
github.com/rclone/rclone/backend/onedrive.(*Object).createUploadSession.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2287 +0x9a
github.com/rclone/rclone/fs.pacerInvoker(0x1, 0xa, 0x50?)
	/go/src/github.com/rclone/rclone/fs/pacer.go:88 +0x32
github.com/rclone/rclone/lib/pacer.(*Pacer).call(0xc000e890e0, 0xc00296a1e0, 0xa)
	/go/src/github.com/rclone/rclone/lib/pacer/pacer.go:197 +0x7c
github.com/rclone/rclone/lib/pacer.(*Pacer).Call(0xc000e890e0, 0xc00296a1e0)
	/go/src/github.com/rclone/rclone/lib/pacer/pacer.go:216 +0x92
github.com/rclone/rclone/backend/onedrive.(*Object).createUploadSession(0xc00203d900, {0x2afa730, 0xc000a767d0}, {0x7fe7d73353a8, 0xc001bfc720}, {0x24999183?, 0xeddf2fe78?, 0x3e0b320?})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2286 +0x36a
github.com/rclone/rclone/backend/onedrive.(*Object).uploadMultipart(0xc00203d900, {0x2afa730, 0xc000a767d0}, {0x2adab60, 0xc0030ed400}, {0x7fe7d73353a8, 0xc001bfc720}, {0xc002b1c5a0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2412 +0x155
github.com/rclone/rclone/backend/onedrive.(*Object).Update(0xc00203d900, {0x2afa730, 0xc000a767d0}, {0x2adab60, 0xc0030ed400}, {0x7fe7d73353a8, 0xc001bfc720}, {0xc002b1c5a0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2513 +0x250
github.com/rclone/rclone/backend/onedrive.(*Fs).Put(0xc000ecc6e0, {0x2afa730, 0xc000a767d0}, {0x2adab60, 0xc0030ed400}, {0x7fe7d73353a8, 0xc001bfc720}, {0xc002b1c5a0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1469 +0x148
github.com/rclone/rclone/backend/union/upstream.(*Fs).Put(0xc0008b41b0, {0x2afa730?, 0xc000a767d0?}, {0x2adab60?, 0xc0030ed400?}, {0x7fe7d73353a8, 0xc001bfc720}, {0xc002b1c5a0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/union/upstream/upstream.go:204 +0xa3
github.com/rclone/rclone/backend/union.(*Fs).put(0xc0006704b0, {0x2afa730, 0xc000a767d0}, {0x2adab60, 0xc0030ed400}, {0x7fe7d73353a8, 0xc001bfc720}, 0x0, {0xc002b1c5a0, 0x1, ...})
	/go/src/github.com/rclone/rclone/backend/union/union.go:544 +0x2b5
github.com/rclone/rclone/backend/union.(*Fs).Put(0xc0006704b0, {0x2afa730, 0xc000a767d0}, {0x2adab60, 0xc0030ed400}, {0x7fe7d73353a8, 0xc001bfc720}, {0xc002b1c5a0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/union/union.go:595 +0x127
github.com/rclone/rclone/fs/operations.(*copy).updateOrPut(0xc000f2c900, {0x2afa730, 0xc000a767d0}, {0x2aeb4b0?, 0xc0000527e0?}, {0xc002b1c5a0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:209 +0x226
github.com/rclone/rclone/fs/operations.(*copy).manualCopy(0xc000f2c900, {0x2afa730, 0xc000a767d0})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:262 +0x6d8
github.com/rclone/rclone/fs/operations.(*copy).copy(0xc000f2c900, {0x2afa730, 0xc000a767d0})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:302 +0x16c
github.com/rclone/rclone/fs/operations.Copy({0x2afa730, 0xc000a767d0}, {0x2b11650, 0xc0006704b0}, {0x0, 0x0}, {0xc003658dc0, 0x34}, {0x2b100e0, 0xc001bfc720})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:404 +0x485
github.com/rclone/rclone/vfs/vfscache.(*Item)._store(0xc002b79e00, {0x2afa730, 0xc000a767d0}, 0xc0029231c0)
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:593 +0x1ce
github.com/rclone/rclone/vfs/vfscache.(*Item).store(0x40f465?, {0x2afa730?, 0xc000a767d0?}, 0xc002b21501?)
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:633 +0xc5
github.com/rclone/rclone/vfs/vfscache.(*Item).Close.func2({0x2afa730?, 0xc000a767d0?})
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:732 +0x2e
github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).upload(0xc0005401c0, {0x2afa730, 0xc000a767d0}, 0xc0005428c0)
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:354 +0x128
created by github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).processItems in goroutine 43101
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:450 +0x275

goroutine 124 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000ce3240)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 31
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 43104 [select]:
github.com/rclone/rclone/fs/accounting.(*Account).averageLoop(0xc0030ed400)
	/go/src/github.com/rclone/rclone/fs/accounting/accounting.go:213 +0xf6
created by github.com/rclone/rclone/fs/accounting.newAccountSizeName in goroutine 43102
	/go/src/github.com/rclone/rclone/fs/accounting/accounting.go:111 +0x436

goroutine 224 [chan receive, 24 minutes]:
github.com/rclone/rclone/backend/union.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/union/union.go:476 +0x3e
created by github.com/rclone/rclone/backend/union.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/union/union.go:475 +0x20b

goroutine 222 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

goroutine 160 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000ce3f40)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 32
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 167 [select, 24 minutes]:
github.com/rclone/rclone/lib/oauthutil.(*Renew).renewOnExpiry(0xc000f18440)
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:43 +0x85
created by github.com/rclone/rclone/lib/oauthutil.NewRenew in goroutine 33
	/go/src/github.com/rclone/rclone/lib/oauthutil/renew.go:32 +0xe5

goroutine 217 [select, 1 minutes]:
github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify.func1()
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2719 +0x1a9
created by github.com/rclone/rclone/backend/onedrive.(*Fs).ChangeNotify in goroutine 1
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2706 +0xa8

....

Thanks.

This is definitely a bug! Can you report it on Github please?

I think it is actually two bugs. The first bug is here

panic({0x1f24fe0?, 0x3d931e0?})
	/usr/local/go/src/runtime/panic.go:770 +0x132
github.com/rclone/rclone/backend/onedrive/api.(*Item).IsRemote(...)
	/go/src/github.com/rclone/rclone/backend/onedrive/api/types.go:544
github.com/rclone/rclone/backend/onedrive/api.(*Item).GetFolder(...)
	/go/src/github.com/rclone/rclone/backend/onedrive/api/types.go:441

I'm guessing this is caused by Item being nil so we are getting a nil pointer de-ref.

However the actual error is masked by the second bug which is somewhere in the call chain there is a defer statement which is trying to unlock an unlocked mutex - that is this bit

sync.fatal({0x23a7ec7?, 0xc00127f250?})
	/usr/local/go/src/runtime/panic.go:1007 +0x18
sync.(*Mutex).unlockSlow(0xc001efe508, 0xffffffff)
	/usr/local/go/src/sync/mutex.go:229 +0x35
sync.(*Mutex).Unlock(...)
	/usr/local/go/src/sync/mutex.go:223

Unfortunately we don't get any clues from the backtrace where that is.

Looking through the call stack I see that the problem is caused here

/home/ncw/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:593 +0x1ce
		item.mu.Unlock()
		o, err := operations.Copy(ctx, item.c.fremote, o, name, cacheObj)
		item.mu.Lock()

And the crash must come from here

/home/ncw/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:633 +0xc5
func (item *Item) store(ctx context.Context, storeFn StoreFn) (err error) {
	item.mu.Lock()
	defer item.mu.Unlock()
	return item._store(ctx, storeFn)
}

So as a first step I've attempted to fix the second bug. This means that when it crashes again it should reveal the real problem which is very likely a nil pointer deref.

Can you give this a go please and report the traceback when it crashes. I don't need to see the DEBUG log, just the traceback.

v1.67.0-beta.7981.40fb09b04.fix-webdav-crash on branch fix-webdav-crash (uploaded in 15-30 mins)

Thank you

@ncw , could you give me advice on how to use this beta version using a Docker?
Should I use (from https://hub.docker.com/r/rclone/rclone/tags)

docker pull rclone/rclone:beta

Thanks!

I been running the server using the command:

2024/06/06 08:01:18 DEBUG : rclone: Version "v1.66.0" starting with parameters ["rclone" "serve" "webdav" "j_union:webdav/" "--checkers" "20" "--log-file" "/log/rclone_serve_webdav_j_union.log" "-vv"]

The rclone made a 2.3GiB file, and no trace of:

  • item.mu.Unlock()
  • sync.fatal({
  • panic({

But I ran it again without the -vv, and got the crash again. Look at the full log when running without the -vv: https://forum.rclone.org/t/serve-webdav-is-crashing-fatal-error-sync-unlock-of-unlocked-mutex/46300 · GitHub

So far, this beta is working fine.

Which rclone version was that running? The beta or v1.66.0?

I didn't fix the main problem in that beta so it will probably go wrong again - if it does please post the traceback - thank you :slight_smile:

Was with version 1.66.0. The public release on a Docker container.

The beta, as I said, so far is working OK.

@ncw , I will keep you posted.
Thank you for your support. Keep me posted if you release any update you consider I should test.

Thanks!

1 Like

It's been a while, but last night I had again the same error.

2024/06/19 01:42:29 ERROR : Hyper Backup/rclone_vxxxxxx.hbk/Config/version_info.db.632: Failed to copy: Post "https://graph.microsoft.com/v1.0/drives/3xxxxxxxxxx/items/3xxxxxxxxxx!1xxxxx:/version_info.db.632:/createUploadSession": context canceled
fatal error: sync: unlock of unlocked mutex
[signal SIGSEGV: segmentation violation code=0x1 addr=0x3b0 pc=0x115551a]

goroutine 1134438 [running]:
sync.fatal({0x24079b0?, 0xc003265248?})
	/usr/local/go/src/runtime/panic.go:1007 +0x18
sync.(*Mutex).unlockSlow(0xc005696508, 0xffffffff)
	/usr/local/go/src/sync/mutex.go:229 +0x35
sync.(*Mutex).Unlock(...)
	/usr/local/go/src/sync/mutex.go:223
panic({0x1f76440?, 0x3e58220?})
	/usr/local/go/src/runtime/panic.go:770 +0x132
github.com/rclone/rclone/backend/onedrive/api.(*Item).IsRemote(...)
	/go/src/github.com/rclone/rclone/backend/onedrive/api/types.go:551
github.com/rclone/rclone/backend/onedrive/api.(*Item).GetFolder(...)
	/go/src/github.com/rclone/rclone/backend/onedrive/api/types.go:448
github.com/rclone/rclone/backend/onedrive.(*Object).setMetaData(0xc00084eb00?, 0x2b90470?)
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2114 +0x1a
github.com/rclone/rclone/backend/onedrive.(*Object).uploadSinglepart(0xc0049ca580, {0x2b90470, 0xc004839630}, {0x2b70600, 0xc000664300}, {0x7fe37668ea98, 0xc0009145a0}, {0xc004825bb0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2541 +0x54a
github.com/rclone/rclone/backend/onedrive.(*Object).Update(0xc0049ca580, {0x2b90470, 0xc004839630}, {0x2b70600, 0xc000664300}, {0x7fe37668ea98, 0xc0009145a0}, {0xc004825bb0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:2561 +0x185
github.com/rclone/rclone/backend/onedrive.(*Fs).Put(0xc00084eb00, {0x2b90470, 0xc004839630}, {0x2b70600, 0xc000664300}, {0x7fe37668ea98, 0xc0009145a0}, {0xc004825bb0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/onedrive/onedrive.go:1484 +0x148
github.com/rclone/rclone/backend/union/upstream.(*Fs).Put(0xc0007d2120, {0x2b90470?, 0xc004839630?}, {0x2b70600?, 0xc000664300?}, {0x7fe37668ea98, 0xc0009145a0}, {0xc004825bb0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/union/upstream/upstream.go:204 +0xa3
github.com/rclone/rclone/backend/union.(*Fs).put(0xc00075c000, {0x2b90470, 0xc004839630}, {0x2b70600, 0xc000664300}, {0x7fe37668ea98, 0xc0009145a0}, 0x0, {0xc004825bb0, 0x1, ...})
	/go/src/github.com/rclone/rclone/backend/union/union.go:549 +0x2b5
github.com/rclone/rclone/backend/union.(*Fs).Put(0xc00075c000, {0x2b90470, 0xc004839630}, {0x2b70600, 0xc000664300}, {0x7fe37668ea98, 0xc0009145a0}, {0xc004825bb0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/backend/union/union.go:600 +0x127
github.com/rclone/rclone/fs/operations.(*copy).updateOrPut(0xc003d5fd40, {0x2b90470, 0xc004839630}, {0x2b81080?, 0xc000761b20?}, {0xc004825bb0, 0x1, 0x1})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:213 +0x226
github.com/rclone/rclone/fs/operations.(*copy).manualCopy(0xc003d5fd40, {0x2b90470, 0xc004839630})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:266 +0x6d8
github.com/rclone/rclone/fs/operations.(*copy).copy(0xc003d5fd40, {0x2b90470, 0xc004839630})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:306 +0x16c
github.com/rclone/rclone/fs/operations.Copy({0x2b90470, 0xc004839630}, {0x2ba7630, 0xc00075c000}, {0x0, 0x0}, {0xc0047f5650, 0x6f}, {0x2ba5fe0, 0xc0009145a0})
	/go/src/github.com/rclone/rclone/fs/operations/copy.go:408 +0x485
github.com/rclone/rclone/vfs/vfscache.(*Item)._store(0xc005696500, {0x2b90470, 0xc004839630}, 0xc0013242d0)
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:593 +0x1ce
github.com/rclone/rclone/vfs/vfscache.(*Item).store(0x40f3a5?, {0x2b90470?, 0xc004839630?}, 0x410201?)
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:633 +0xc5
github.com/rclone/rclone/vfs/vfscache.(*Item).Close.func2({0x2b90470?, 0xc004839630?})
	/go/src/github.com/rclone/rclone/vfs/vfscache/item.go:732 +0x2e
github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).upload(0xc0006130a0, {0x2b90470, 0xc004839630}, 0xc000613570)
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:354 +0x128
created by github.com/rclone/rclone/vfs/vfscache/writeback.(*WriteBack).processItems in goroutine 1134437
	/go/src/github.com/rclone/rclone/vfs/vfscache/writeback/writeback.go:450 +0x275
...

I am using 1.67. From https://hub.docker.com/layers/rclone/rclone/latest/images/sha256-0aef5f7a75affdcafa773c26f1599d6d07ff2ac16fbae1b7ddb7386c21fa302a?context=explore

I think I worked out what is happening now.

Can you try this please!

v1.68.0-beta.8041.d6556cc66.fix-webdav-crash on branch fix-webdav-crash (uploaded in 15-30 mins)

And report back if you get the crash? Or after a while if it doesn't.

You should get an error "failed to fetch and update metadata" with an explanation instead which might need another fix!

@ncw , thank you very much for your reply.
I am using Docker, are you planning to post this branch on Docker Hub?

... Or, how can I update my Docker to have this version of rclone? (sorry for my lack of knowledge)

Thanks!

I've merged this to master now which means it will be in the latest beta in 15-30 minutes - this will make a docker build with the beta tag - just make sure you use one built today or later.

1 Like