TagStudioDev / TagStudio

A User-Focused Photo & File Management System
https://docs.tagstud.io/
GNU General Public License v3.0
5.16k stars 373 forks source link

[Bug]: Unpredictable library deletion still persists in 9.4.1 #553

Open The-Stolas opened 1 week ago

The-Stolas commented 1 week ago

Checklist

TagStudio Version

Alpha v9.4.1

Operating System & Version

Windows 10 Professional

Description

I had a library of 792 fully tagged files (15-20 tags per file, complex parent tags). JSON size was roughly 290kb. The JSON was created during 9.2.1, but I have been using TagStudio 9.4.1. I wanted to add 15 new files into the library, so I rapidly closed and opened the app during a rescan and thumbnail creation, because I wasn't sure whether files were in the folder. Upon the relaunching the app, the JSON wasn't there and TagStudio didn't display the library.

I had a semi-recent backup, but I still lost tag data for 158 files. I'm not sure whether this can be reliably reproduced, because: a) I no longer have the original JSON that produced this deletion. b) I've done this before about a dozen times and it didn't delete the library.

So it may seem like it's just random wiping and I'm not sure what affects it. I'll back up more often now.

Expected Behavior

JSON file isn't deleted randomly.

Steps to Reproduce

  1. Have a JSON size and composition similar to mine (790 files, JSON of roughly 290kb in size).
  2. Drop 15 files new into the folder.
  3. Launch a rescan while thumbnails are still being rendered.
  4. Close the app immediately after the rescan was started.

Logs

No response

CyanVoxel commented 1 week ago

Seems to be a duplicate of #343/#320 where the save file is cleared if the program is closed in the middle of rewriting it. In the upcoming 9.5 version we've switched to a completely different database backend that shouldn't have this issue, however I wouldn't recommend building from that version until we put out a stable release. If I find that version to be too far off in the future, then I can work on a fix for 9.4.x in the meantime