Rclone mount crashes when copying files to it

Hi there,

does rclone mount work for anyone on Windows with Dropbox? I appreciate if someone could confirm that it works in general.

What is the problem you are having with rclone?

I use rclone mount to access my dropbox. Unfortunately, i can't copy any files to the drive. It either crashes or shows strange error messages. If it doesn't crash, a zero byte file is created.

zero byte file  2021-11-21 163639

I can read / open files and as long as i don't copy any files to the drive everything works great. Interestingly, deleting files works without any problems too.

Windows error message when it crashes:
Location not availabe 2021-11-21 162826

If it does not crash (mostly in network mode) windows asks to replace the file I try to copy. The file does not exist before. It looks to me that it creates an zero byte file and then Windows thinks it's an overwrite operation:
network mode vfs full replace  2021-11-21 164126

Sometimes Windows shows this error instead:
Invalid MS-DOS function 2021-11-21 162712

In network mode it rarely shows this error instead:
network mode - IO error 2021-11-21 163303

With the beta version it rarely crashes and mostly shows the following message:
interrupted  2021-11-21 164505

I had this issue before reinstalling my work computer and still have it after the reinstall. There are some security policies applied to my work computer (Windows 10 Enterprise 21H1), but I have looked through them and don't see any that could have anything to do with it. I also tried it on my private computer (Windows 10 Enterprise 2004), where it seems to be slightly more stable but crashes after a while with the same errors as well.

I have tried the following without success:

  • deleted rclone and downloaded again
  • created a new config file from scratch
  • reinstalled WinFSP 2021 1.9.21096
  • tried the beta version of rclone
  • tried old versions of WinFSP
  • reinstalled Windows
  • tried a different Windows computer
  • tried network mode
  • tried with and without VFS cache

What is your rclone version (output from rclone version)

rclone v1.57.0 + WinFSP 2021 1.9.21096

  • os/version: Microsoft Windows 10 Enterprise 2009 (64 bit)
  • os/kernel: 10.0.19043.1348 (x86_64)
  • os/type: windows
  • os/arch: amd64
  • go/version: go1.17.2
  • go/linking: dynamic
  • go/tags: cmount

same behavior with the beta version:
rclone v1.58.0-beta.5899.df07964db + WinFSP 2021 1.9.21096

  • os/version: Microsoft Windows 10 Enterprise 2009 (64 bit)
  • os/kernel: 10.0.19043.1348 (x86_64)
  • os/type: windows
  • os/arch: amd64
  • go/version: go1.17.3
  • go/linking: dynamic
  • go/tags: cmount

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

Dropbox

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

.\rclone.exe --config .\rclone.conf mount dropbox: * -vv --log-file rclone.log

or

.\rclone.exe --config .\rclone.conf mount dropbox: * --network-mode -vv --log-file rclone.log

or

.\rclone.exe --config .\rclone.conf mount dropbox: * --vfs-cache-mode writes --network-mode -vv --log-file rclone.log

or

.\rclone.exe --config .\rclone.conf mount dropbox: * --vfs-cache-mode full --network-mode -vv --log-file rclone.log

The rclone config contents with secrets removed.

[dropbox]
type = dropbox
token = {"access_token":"<removed>","token_type":"bearer","refresh_token":"<remove>","expiry":"2021-11-21T19:35:59.8545709+01:00"}

A log from the command with the -vv flag

2021/11/21 16:27:57 DEBUG : /README.html: >CreateEx: errc=0, fh=0x6
unexpected fault address 0xffffffffffffffff
fatal error: fault
[signal 0xc0000005 code=0x0 addr=0xffffffffffffffff pc=0x40332e]

goroutine 66 [running, locked to thread]:
runtime.throw({0x1b5206d, 0xc00052fd00})
	runtime/panic.go:1198 +0x76 fp=0xc00052fcb0 sp=0xc00052fc80 pc=0x43a5d6
runtime.sigpanic()
	runtime/signal_windows.go:260 +0x10c fp=0xc00052fcf8 sp=0xc00052fcb0 pc=0x44ec4c
indexbytebody()
	internal/bytealg/indexbyte_amd64.s:124 +0xce fp=0xc00052fd00 sp=0xc00052fcf8 pc=0x40332e
runtime.findnull(0xc00052fd90)
	runtime/string.go:438 +0x89 fp=0xc00052fd58 sp=0xc00052fd00 pc=0x453c69
runtime.gostring(0x301c380)
	runtime/string.go:320 +0x1e fp=0xc00052fda0 sp=0xc00052fd58 pc=0x4677de
github.com/billziss-gh/cgofuse/fuse._Cfunc_GoString(...)
	_cgo_gotypes.go:320
github.com/billziss-gh/cgofuse/fuse.c_GoString(...)
	github.com/billziss-gh/cgofuse@v1.5.0/fuse/host_cgo.go:708
github.com/billziss-gh/cgofuse/fuse.hostRelease(0x0, 0x2c8ffc18)
	github.com/billziss-gh/cgofuse@v1.5.0/fuse/host.go:284 +0xa9 fp=0xc00052fe08 sp=0xc00052fda0 pc=0x14a0b29
github.com/billziss-gh/cgofuse/fuse.go_hostRelease(...)
	github.com/billziss-gh/cgofuse@v1.5.0/fuse/host_cgo.go:926
_cgoexp_12ef5be0dd8c_go_hostRelease(0x2c8ffb80)
	_cgo_gotypes.go:768 +0x28 fp=0xc00052fe28 sp=0xc00052fe08 pc=0x14a7da8
runtime.cgocallbackg1(0x14a7d80, 0xc00052ffe0, 0x0)
	runtime/cgocall.go:306 +0x29a fp=0xc00052fef8 sp=0xc00052fe28 pc=0x404b3a
runtime.cgocallbackg(0xc000686d20, 0xc0003ea240, 0x443c25)
	runtime/cgocall.go:232 +0x106 fp=0xc00052ff90 sp=0xc00052fef8 pc=0x4047c6
runtime.cgocallbackg(0x14a7d80, 0x2c8ffb80, 0x0)
	<autogenerated>:1 +0x36 fp=0xc00052ffb8 sp=0xc00052ff90 pc=0x46e256
runtime.cgocallback(0x0, 0x0, 0x0)
	runtime/asm_amd64.s:915 +0xd7 fp=0xc00052ffe0 sp=0xc00052ffb8 pc=0x46c097
runtime.goexit()
	runtime/asm_amd64.s:1581 +0x1 fp=0xc00052ffe8 sp=0xc00052ffe0 pc=0x46c2e1

goroutine 1 [select, 2 minutes]:
github.com/rclone/rclone/cmd/mountlib.(*MountPoint).Wait(0xc000522160)
	github.com/rclone/rclone/cmd/mountlib/mount.go:290 +0x24a
github.com/rclone/rclone/cmd/mountlib.NewMountCommand.func1(0xc000337b80, {0xc0001fea10, 0x7, 0x7})
	github.com/rclone/rclone/cmd/mountlib/mount.go:181 +0x258
github.com/spf13/cobra.(*Command).execute(0xc000337b80, {0xc0001fe9a0, 0x7, 0x7})
	github.com/spf13/cobra@v1.2.1/command.go:860 +0x5f8
github.com/spf13/cobra.(*Command).ExecuteC(0x1675200)
	github.com/spf13/cobra@v1.2.1/command.go:974 +0x3bc
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/cobra@v1.2.1/command.go:902
github.com/rclone/rclone/cmd.Main()
	github.com/rclone/rclone/cmd/cmd.go:555 +0x76
main.main()
	github.com/rclone/rclone/rclone.go:14 +0x17

goroutine 50 [select, 1 minutes]:
go.opencensus.io/stats/view.(*worker).start(0xc0006ee000)
	go.opencensus.io@v0.23.0/stats/view/worker.go:276 +0xb9
created by go.opencensus.io/stats/view.init.0
	go.opencensus.io@v0.23.0/stats/view/worker.go:34 +0x92

goroutine 38 [syscall, 2 minutes]:
os/signal.signal_recv()
	runtime/sigqueue.go:169 +0x98
os/signal.loop()
	os/signal/signal_unix.go:24 +0x19
created by os/signal.Notify.func1.1
	os/signal/signal.go:151 +0x2c

goroutine 39 [chan receive, 2 minutes]:
github.com/rclone/rclone/lib/atexit.Register.func1.1()
	github.com/rclone/rclone/lib/atexit/atexit.go:45 +0x2f
created by github.com/rclone/rclone/lib/atexit.Register.func1
	github.com/rclone/rclone/lib/atexit/atexit.go:44 +0x6d

goroutine 40 [select]:
github.com/rclone/rclone/backend/dropbox.(*batcher).commitLoop(0xc00008bda0, {0x1ef6648, 0xc00011e010})
	github.com/rclone/rclone/backend/dropbox/batcher.go:291 +0x214
created by github.com/rclone/rclone/backend/dropbox.newBatcher
	github.com/rclone/rclone/backend/dropbox/batcher.go:109 +0x305

goroutine 12 [IO wait]:
internal/poll.runtime_pollWait(0x2be91bc0, 0x72)
	runtime/netpoll.go:229 +0x89
internal/poll.(*pollDesc).wait(0x9b448943214402b2, 0x89d1caf2e9d58be2, 0x0)
	internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.execIO(0xc000841198, 0x1c45d38)
	internal/poll/fd_windows.go:175 +0xe5
internal/poll.(*FD).Read(0xc000841180, {0xc0006a0a00, 0x13b1, 0x13b1})
	internal/poll/fd_windows.go:441 +0x25f
net.(*netFD).Read(0xc000841180, {0xc0006a0a00, 0xc000334b40, 0xc0006a0a0d})
	net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc00068bb70, {0xc0006a0a00, 0xc0006a0a0d, 0x18d})
	net/net.go:183 +0x45
github.com/rclone/rclone/fs/fshttp.(*timeoutConn).Read(0xc000005578, {0xc0006a0a00, 0x0, 0x100000000000084})
	github.com/rclone/rclone/fs/fshttp/dialer.go:104 +0x32
crypto/tls.(*atLeastReader).Read(0xc0003ea0d8, {0xc0006a0a00, 0x0, 0x40b3ed})
	crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000362278, {0x1eb8ea0, 0xc0003ea0d8})
	bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000362000, {0x2a6899a8, 0xc000005578}, 0x28)
	crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000362000, 0x0)
	crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
	crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000362000, {0xc0000d6000, 0x1000, 0xc00008a480})
	crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).Read(0xc0006868a0, {0xc0003e83b8, 0x9, 0xc0002b3100})
	bufio/bufio.go:227 +0x1b4
io.ReadAtLeast({0x1eb8c00, 0xc0006868a0}, {0xc0003e83b8, 0x9, 0x9}, 0x9)
	io/io.go:328 +0x9a
io.ReadFull(...)
	io/io.go:347
net/http.http2readFrameHeader({0xc0003e83b8, 0x9, 0xc0001e47b0}, {0x1eb8c00, 0xc0006868a0})
	net/http/h2_bundle.go:1553 +0x6e
net/http.(*http2Framer).ReadFrame(0xc0003e8380)
	net/http/h2_bundle.go:1811 +0x95
net/http.(*http2clientConnReadLoop).run(0xc0005fffa0)
	net/http/h2_bundle.go:8437 +0x165
net/http.(*http2ClientConn).readLoop(0xc000173800)
	net/http/h2_bundle.go:8359 +0x79
created by net/http.(*http2Transport).newClientConn
	net/http/h2_bundle.go:7311 +0xb45

goroutine 25 [select, 1 minutes]:
github.com/rclone/rclone/backend/dropbox.(*Fs).ChangeNotify.func1()
	github.com/rclone/rclone/backend/dropbox/dropbox.go:1304 +0x158
created by github.com/rclone/rclone/backend/dropbox.(*Fs).ChangeNotify
	github.com/rclone/rclone/backend/dropbox/dropbox.go:1295 +0xd6

goroutine 14 [syscall, 2 minutes]:
github.com/billziss-gh/cgofuse/fuse._Cfunc_hostMount(0xc, 0xc000310310, 0x3011980)
	_cgo_gotypes.go:502 +0x5a
github.com/billziss-gh/cgofuse/fuse.c_hostMount.func1(0x437dbf, 0x3011980, 0x3011980)
	github.com/billziss-gh/cgofuse@v1.5.0/fuse/host_cgo.go:820 +0x6b
github.com/billziss-gh/cgofuse/fuse.c_hostMount(0x684840, 0xc0004d60f0, 0xc0004de000)
	github.com/billziss-gh/cgofuse@v1.5.0/fuse/host_cgo.go:820 +0x19
github.com/billziss-gh/cgofuse/fuse.(*FileSystemHost).Mount(0xc000684840, {0xc0003e4e10, 0xc0008b9fc0}, {0xc0004b4300, 0xc000173800, 0x10})
	github.com/billziss-gh/cgofuse@v1.5.0/fuse/host.go:704 +0x5e8
github.com/rclone/rclone/cmd/cmount.mount.func1()
	github.com/rclone/rclone/cmd/cmount/mount.go:183 +0x9b
created by github.com/rclone/rclone/cmd/cmount.mount
	github.com/rclone/rclone/cmd/cmount/mount.go:176 +0x465

goroutine 105 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x2be919f0, 0x72)
	runtime/netpoll.go:229 +0x89
internal/poll.(*pollDesc).wait(0x6a, 0xd, 0x0)
	internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.execIO(0xc000840518, 0x1c45d38)
	internal/poll/fd_windows.go:175 +0xe5
internal/poll.(*FD).Read(0xc000840500, {0xc0004c2600, 0x10f0, 0x10f0})
	internal/poll/fd_windows.go:441 +0x25f
net.(*netFD).Read(0xc000840500, {0xc0004c2600, 0xc0004c260d, 0x7a})
	net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc00068b988, {0xc0004c2600, 0x10e3, 0xc0008d17f0})
	net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc0003ea210, {0xc0004c2600, 0x0, 0x40b3ed})
	crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000647078, {0x1eb8ea0, 0xc0003ea210})
	bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000646e00, {0x1ebdec0, 0xc00068b988}, 0x28)
	crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000646e00, 0x0)
	crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
	crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000646e00, {0xc00054e000, 0x1000, 0xc0003efec0})
	crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).Read(0xc0009236e0, {0xc0008fe578, 0x9, 0xc000244b80})
	bufio/bufio.go:227 +0x1b4
io.ReadAtLeast({0x1eb8c00, 0xc0009236e0}, {0xc0008fe578, 0x9, 0x9}, 0x9)
	io/io.go:328 +0x9a
io.ReadFull(...)
	io/io.go:347
net/http.http2readFrameHeader({0xc0008fe578, 0x9, 0xc0001e51d0}, {0x1eb8c00, 0xc0009236e0})
	net/http/h2_bundle.go:1553 +0x6e
net/http.(*http2Framer).ReadFrame(0xc0008fe540)
	net/http/h2_bundle.go:1811 +0x95
net/http.(*http2clientConnReadLoop).run(0xc0008d1fa0)
	net/http/h2_bundle.go:8437 +0x165
net/http.(*http2ClientConn).readLoop(0xc000173e00)
	net/http/h2_bundle.go:8359 +0x79
created by net/http.(*http2Transport).newClientConn
	net/http/h2_bundle.go:7311 +0xb45

goroutine 146 [IO wait]:
internal/poll.runtime_pollWait(0x2be91ad8, 0x72)
	runtime/netpoll.go:229 +0x89
internal/poll.(*pollDesc).wait(0xd04ec4954448371b, 0xaf7063c5e6097a01, 0x0)
	internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.execIO(0xc000864018, 0x1c45d38)
	internal/poll/fd_windows.go:175 +0xe5
internal/poll.(*FD).Read(0xc000864000, {0xc0004da600, 0x1199, 0x1199})
	internal/poll/fd_windows.go:441 +0x25f
net.(*netFD).Read(0xc000864000, {0xc0004da600, 0xc003bba3c0, 0xc0004da60d})
	net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc000830080, {0xc0004da600, 0xc0004da60d, 0x250})
	net/net.go:183 +0x45
github.com/rclone/rclone/fs/fshttp.(*timeoutConn).Read(0xc000844300, {0xc0004da600, 0xc0001690e0, 0x100000000000002})
	github.com/rclone/rclone/fs/fshttp/dialer.go:104 +0x32
crypto/tls.(*atLeastReader).Read(0xc003c16120, {0xc0004da600, 0x0, 0x40b3ed})
	crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc00050acf8, {0x1eb8ea0, 0xc003c16120})
	bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc00050aa80, {0x2a6899a8, 0xc000844300}, 0x1199)
	crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc00050aa80, 0x0)
	crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
	crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc00050aa80, {0xc003bc6000, 0x1000, 0x0})
	crypto/tls/conn.go:1277 +0x16f
net/http.(*persistConn).Read(0xc00050e480, {0xc003bc6000, 0xc0006ed320, 0xc003ba9d30})
	net/http/transport.go:1926 +0x4e
bufio.(*Reader).fill(0xc000866de0)
	bufio/bufio.go:101 +0x103
bufio.(*Reader).Peek(0xc000866de0, 0x1)
	bufio/bufio.go:139 +0x5d
net/http.(*persistConn).readLoop(0xc00050e480)
	net/http/transport.go:2087 +0x1ac
created by net/http.(*Transport).dialConn
	net/http/transport.go:1747 +0x1e05

goroutine 147 [select]:
net/http.(*persistConn).writeLoop(0xc00050e480)
	net/http/transport.go:2386 +0xfb
created by net/http.(*Transport).dialConn
	net/http/transport.go:1748 +0x1e65

Full log: https://pastebin.com/hGRpRtL0

Any help is gratefully appreciated.

hello and welcome to the forum,

i see that you did some good testing.

i have a few suggestions.

  • make sure commands such as rclone copy work with dropbox
  • mount to a folder, not a drive letter
  • use a few flags as possible, as many defaults as possible.
    --- for example, no need for --config, as the config file is in the same dir as rclone.exe
  • mount to something other than dropbox
    --- another cloud provuder such as gdrive
    --- mount a local folder
  • mount as system user.

rclone.exe mount %temp% c:\path\to\local\folder --log-level=DEBUG --log-file rclone.log

using the rclone mount

  • can you download flies?
  • can you rename files?
  • can you delete files?
  • can you copy/move files from one folder to another folder?

Thank you for your reply. Very much appreciated.

rclone copy, delete, sync, etc. work perfectly fine (logfile: https://pastebin.com/MkzmLHVB)

.\rclone.exe mount dropbox: C:\Users\user\workdir\dropbox --log-level=DEBUG --log-file rclone.log

Does crash less, but gets the "Invalid MS-DOS function." error and a zero byte file is created. (logfile: https://pastebin.com/tc3NbqjQ)
Invalid MS-DOS 2

.\rclone.exe mount gdrive: C:\Users\user\workdir\gdrive --log-level=DEBUG --log-file rclone.log
.\rclone.exe mount C:\Users\user\workdir\test C:\Users\user\workdir\mount --log-level=DEBUG --log-file rclone.log

Makes no difference. Exactly the same behavior as with Dropbox.
(logfile local part 1: https://pastebin.com/h8yDXarT
part 2: https://pastebin.com/1r4FJ5mL
part 3: https://pastebin.com/eyWQhBjA
logfile gdrive: https://pastebin.com/cuKt0pnd)

.\PsExec.exe -h -s C:\Users\user\apps\rclone-v1.57.0-windows-amd64\rclone.exe mount dropbox: C:\Users\user\workdir\dropbox --log-level=DEBUG --log-file rclone.log

Same behavior. (logfile: https://pastebin.com/Vwts61zU)
system user

yes, without any problems

yes, without any problems

yes, without any problems

yes, without any problems

==> So, it's not a problem particular with Dropbox. Everything beside copying files to a remote works. If i copy a file to a remote a zero bytes file is created (if it doesn't crash immediately). Is this expected behavior? Does rclone first creates an empty file and then write the contents to that file?

again, good testing
so going forward, if the problem can be reproduced using a local source, not cloud, then i would test with that.

in your case, the strange thing is that you stated
"tried a different Windows computer"

but in log https://pastebin.com/eyWQhBjA, the only error was at the end,
so to be clear, on each machine you get this exact error?

unexpected fault address 0xffffffffffffffff
fatal error: fault
[signal 0xc0000005

in general that might point to an issue with a single machine, not multiple.
perhaps i would suggest testing the system memory.

in log https://pastebin.com/raw/eyWQhBjA, which is for a local source, all i saw was this, did you kill rclone or did what?

The service rclone has been stopped.
2021/11/21 20:41:57 DEBUG : Local file system at //?/C:/Users/user/workdir/test: Destroy: 
2021/11/21 20:41:57 DEBUG : Local file system at //?/C:/Users/user/workdir/test: >Destroy: 
2021/11/21 20:41:57 DEBUG : Not calling host.Unmount as mount already Destroyed
2021/11/21 20:41:57 DEBUG : Unmounted successfully
2021/11/21 20:41:57 ERROR : C:\Users\user\workdir\mount: Unmounted rclone mount

The crash looks very much like the one reported here

Can you try the latest pre-release here and see if it fixes the problem?