ID:1292000
 
BYOND Version:499
Operating System:Linux
Web Browser:Chrome 27.0.1453.110
Applies to:Dream Daemon
Status: Open

Issue hasn't been assigned a status value.
Descriptive Problem Summary:
While running a game on a Linux shell, several errors involving reading and writing save files occurred.
Numbered Steps to Reproduce Problem:
1.) Create a new character
2.) Load character
3.) Save character
4.) Log out, time pass, or reboot server
5.) Log back in
6.) Load or try to delete the file when the character cannot load
7.) Log out and log back in
8.) Client is suddenly a nameless mob that cannot be removed unless via rebooting(or deleting through a manual process or verb that only targets nameless mobs).
9.) Delete their file, reboot server to remove nameless mobs, hope this does not spread.
10.) Watch as the infection spreads
Code Snippet (if applicable) to Reproduce Problem:
Note: This is the message we receive
BYOND Error:(sfile.cpp,369) error writing file node
BYOND Error:(sfile.cpp,369) error writing file node
BYOND Error:(sfile.cpp,369) error writing file node
BYOND Error:(sfile.cpp,369) error writing file node
BYOND Error:(sfile.cpp,366) error writing file node
BYOND Error:(sfile.cpp,366) error writing file node
BYOND Error:(sfile.cpp,366) error writing file node
BYOND Error:(sfile.cpp,366) error writing file node
BYOND Error:(sfile.cpp,1459) error opening file buffer
BYOND Error:(sfile.cpp,369) error writing file node
BYOND Error:(sfile.cpp,369) error writing file node
BYOND Error:(sfile.cpp,366) error writing file node



Expected Results:
Saves to function normally.
Actual Results:
Savefiles corrupt and result in every single file on the server eventually suffering from corruption.
Does the problem occur:
Every time? Or how often? 70% of players experience this at least once.
In other games? This has happened a few times(Long time ago, though), but it was eventually resolved through unknown means.(The host shut the server down, deleted the save files, and the issue returned, they repeated this process and then left the server offline for a while and it resolved itself)
In other user accounts? Yes
On other computers? Yes

When does the problem NOT occur?
When running the game in private on my own computer.(Using the same .dmb and .rsc files)
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? No.

Workarounds:
Either A) Delete all files and hope the issue doesn't return(done this 2 times now, issue keeps returning).

or

B) Manually edit every save file that experiences this(before they turn into nameless mobs), and delete their contents and then delete the mob the player is on, then delete the file after the mob is not on the server and the player is not connected.
How are you running DreamDaemon? is it in trusted mode?

Are the dmb and rsc file chmod 'ed to 755?
Yes, to both.
If it helps, we're using BYONDPanel
BUG: Corrupt block header
BUG: Fmem block size at 46087 is -1849706579/51806 with type 137.
BUG: Error reading file memory structureFile offset: 46087
Real position: 46092/51806
BUG: Writing invalid root to savefile 'Saves/X/Xero15000.sav' (parent=0)
BUG: Writing self-parent to savefile 'Saves/X/Xero15000.sav' (id=0)
BUG: Orphan savefile buffer name exported to /home/dmb/zack/Saves/X/Xero15000_lost.txt
BUG: Orphan savefile buffer verbs exported to /home/dmb/zack/Saves/X/Xero15000_lost.txt
BUG: Failed to verify file block (fptr = 78, type 1/2, size 46004/0, block = 0xa78a4fc)
BUG: Ccorrupt or invalid savefile 'Saves/X/Xero15000.sav'
BUG: Attempting auto-recovery of '/home/dmb/zack/Saves/X/Xero15000.sav'
BUG: Backed up old savefile as '/home/dmb/zack/Saves/X/Xero15000_bad_000.sav' and exported text to '/home/dmb/zack/Saves/X/Xero15000_bad_000.txt'. REMOVE OR RENAME THESE FILES. If too many of these files build up, auto-recovery will be disabled.
BUG: Removing suspect free block index

Is what we get now.
Just got this:
BUG: Failed to fseek() in ClientSocket::SendNextPacket(159,0,0,1,483): Illegal seek
BUG: Failed to send 'resources'
BUG: Failed to fseek() in ClientSocket::SendNextPacket(159,0,0,1,483): Illegal seek
BUG: Failed to send 'resources'