Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
138 stars 2 forks source link

Failing to find files on disk when saving avatar #1332

Open BlueCyro opened 8 months ago

BlueCyro commented 8 months ago

Describe the bug?

When saving my avatar I almost always encounter a sync error. This isn't a typical cloud conflict and the recommended launch arguments fail to resolve the issue. Notably, my Linux partition has no issues when syncing things in Resonite so this appears to be something wrong specifically in my Windows install.

Notable section snipped from log:

[#3647] 7:08:14 PM.517 ( 58 FPS)    Couldn't move file C:/Users/Cyro/Desktop/Resonite/Cache\Cache\9846afd3-96c2-41cb-a665-37b42e601a51 after several attempts, copying instead
7:08:14 PM.517 ( 58 FPS)    Exception during record upload task:
[#3648] System.IO.FileNotFoundException: C:/Users/Cyro/Desktop/Resonite/Cache\Cache\9846afd3-96c2-41cb-a665-37b42e601a51 does not exist
[#3649] File name: 'C:/Users/Cyro/Desktop/Resonite/Cache\Cache\9846afd3-96c2-41cb-a665-37b42e601a51'

To Reproduce

I can only reproduce this by attempting to save my avatar, as far as I'm aware this issue is unique to my system only.

Expected behavior

The sync error doesn't occur.

Screenshots

N/A

Resonite Version Number

2024.2.5.848

What Platforms does this occur on?

Windows

What headset if any do you use?

Quest Pro, Desktop

Log Files

DESKTOP-6C2UJFB - 2024.2.5.848 - 2024-02-11 19_06_44.log

Additional Context

I've even attempted to manually create the missing files with junk data just to see if it'll take them and free my sync queue, but in doing so the files are automatically deleted.

I've done a significant portion of avatar work, and alas this issue has halted my progress until I can resolve it. This also means I can't clear my cache nor my database until the sync is complete to troubleshoot the issue, otherwise I'll lose my progress.

Reporters

Cyro

BlueCyro commented 8 months ago

Addtional context I forgot to add, my launch arguments:

-screen-fullscreen 1 -screen-width 3840 -screen-height 2160 -DontAutoOpenCloudHome -CachePath C:\Users\Cyro\Desktop\Resonite\Cache -DataPath C:\Users\Cyro\Desktop\Resonite\Data -LoadAssembly Libraries\ResoniteModLoader.dll

The modloader dll has no bearing as it's been disabled by renaming the DLL so it doesn't taint this report.

Frooxius commented 8 months ago

This is technically correct-ish behavior - a file that is crucial to the sync is missing on the drive, which fails the process, to prevent a corrupted sync.

I don't know how did the file disappear - and I don't think we can figure this out from this request.

However this is not quite desirable behavior in all cases to prevent the full sync, so I think what is best in this case is add a mode which will ignore missing files and just sync everything else - you might end up with a partially corrupted item, but that might be better than losing the whole thing.

Question is, should we make this the default behavior? Or just something you trigger with override?

If it's default, this can lead to errors being silently ignored, which can cause problems down the line, because the corruption ends up discovered way too late.

shiftyscales commented 8 months ago

Seems like something we could either make into a separate command like argument- or wrap into the existing behaviour of ForceSyncConflictingCloudRecords.

I wouldn't think we'd want to force it by default for the aforementioned reason of errors going unnoticed.

It would be good to know why the original file was deleted from the cache- however- have you ever made use of any cache cleaning mods, or otherwise manually managed the cache directory recently @RileyGuy?

BlueCyro commented 8 months ago

I haven't made use of any cache clearing mods at all. The only thing I've done was relocate the folders in an attempt to fix the sync, but it made no difference to my issue. It seems to happen at random where I'll be working on my avatar, save it, and then suddenly it can't find the file on my disk. It only seems to happen with my avatar or my home world, other smaller items like voice messages seem to sync just fine.

It seems there's not a lot of logging around the sync process other than errors for the result of the sync, I kind of wish I could see more of what's happening when the file syncs; e.g. why it gets deleted or what my client thinks is wrong with the files, where things are moved/copied to, what assets are being collected, etc.

Frooxius commented 8 months ago

The odd thing here is that files that are saved and to be synced should never be in the cache in the first place. But I don't think there's enough here to trace that down.

BlueCyro commented 8 months ago

This seems to be an issue I experience on-and-off. I'd like to keep this issue open, and when I experience it again I'll post an update with more observations and logs if that would help.