ID:2600476
 
Resolved
Certain rare types of savefiles did not load correctly.
BYOND Version:513
Operating System:Windows 10 Pro 64-bit
Web Browser:Chrome 84.0.4147.105
Applies to:Dream Daemon
Status: Resolved (513.1531)

This issue has been resolved.
Descriptive Problem Summary:
Calling ImportText() twice causes a silent lock on the savefile it is called on. I've included a test case below.

Steps to Reproduce
1. Upload a picture in the test case.
2. Upload the same picture (or another) in the test case.
3. Dreamseeker will lock, and the files in /tmp will not be unlocked.


https://www.dropbox.com/s/wk70jgfocu71d4i/test_src.zip?dl=0

EDIT: It looks like this isn't related to files, it's just ImportText() crashing out. If you change the example test case to rely instead on temporary save files and pass the header straight into ImportText(), the issue still happens.

(Updated test case: https://www.dropbox.com/s/qffthbxh5agsplw/ test_2_src.zip?dl=0 )
I was able to get the hang to happen, but only after fixing a bug in your source. You had an extra quote after the base64 contents of the file that was causing ImportText() to die with an error.

I'm looking into the core problem now.
It appears the heart of the issue is that there's no checksum here. I need to make some adjustments to the code so when there isn't a checksum, it'll calculate one.

Apparently the reason the checksum is used at all is to accelerate loading, since if the file is already in the cache it doesn't have to do the base64 decoding.
Lummox JR resolved issue with message:
Certain rare types of savefiles did not load correctly.