That pesky "failed to reload" error message

This is the part where not having persistent directories bites B2. On a normal backend, rclone would have created the directories already and these would be on the remote. But they aren't found here.

So I think you've confirmed it is the B2 directories issue.

I've had a go at fixing this.

When adding a Virtual on a backend which can't have empty directories, if the directory isn't found then rclone will create it and all of its parents.

There is quite a lot of new code here so it might not work properly and it needs tests for the new code, but I thought I'd let you have a go first to see if it works.

This should emit a new DEBUG Creating parent of virtual directory since backend can't have empty directories

Please give this a go

v1.61.0-beta.6591.3f77e5648.fix-vfs-empty-dirs on branch fix-vfs-empty-dirs (uploaded in 15-30 mins)

Holy cow. It's working! I think this was the final fix for the entire concept of "infinite B2 disk with local cache", after all the years of your work towards this. I have only just mounted it, and haven't tested doing practical things like viewing video files, but everything did show up from cache!

(And yes, the DEBUG Creating parent statements were showing up during mounting.)

And it's working fast! Infuse scan can now take less than 5 seconds (if dir cache hasn't been busted). Used to spin for minutes.

One thing I was wondering. After dir cache is busted, it logs this:

Dec 06 10:37:42 htpc rclone[13496]: DEBUG : path/to/dir: Re-reading directory (1h1m56.44169641s old)

Followed by a few entries like these:

Dec 06 10:37:43 htpc rclone[13496]: DEBUG : path/to/dir: Removed virtual directory entry vAddFile: "some-file-in-this-dir"

Is it normal? (These dirs/files exist on B2, so I assume this is just some kind of standard maintenance.)

Another thing: since I never intend to update B2 directly outside of using this htpc, can I just disable dir cache time limit? I think rc vfs/refresh on load will always refresh the dirs, so I can remount or call this command if anything? /cc @Animosity022

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

I finished this fix off and I've merged this to master now which means it will be in the latest beta in 15-30 minutes and released in v1.63

It will be in this beta (and future ones) if you want to give it a test:

v1.63.0-beta.6958.9a9ef040e on branch master (uploaded in 15-30 mins)