RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

What is corrupting my Saves

Erucid

Sorceror
Every few weeks or a month I get a corrupted save. similar to this
Server Crash Report
===================

RunUO Version 2.1, Build 3832.8042
Operating System: Unix 2.6.32.5
.NET Framework: 2.0.50727.1433
Time: 2/25/2012 10:18:01 PM
Mobiles: 4286
Items: 108193
Exception:
System.UnauthorizedAccessException: Access to the path "/runuo/devel/Saves/Guilds/Guilds.idx" is denied.
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000]
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000]
at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
at Server.BinaryFileWriter..ctor (System.String filename, Boolean prefixStr) [0x00000]
at Server.StandardSaveStrategy.SaveGuilds (Server.SaveMetrics metrics) [0x00000]
at Server.StandardSaveStrategy.Save (Server.SaveMetrics metrics) [0x00000]
at Server.World.Save (Boolean message) [0x00000]
at Server.World.Save () [0x00000]
at Server.Misc.AutoSave.Save () [0x00000]
at Server.Misc.AutoSave.OnTick () [0x00000]
at Server.Timer.Slice () [0x00000]
at Server.Core.Main (System.String[] args) [0x00000]

Clients:
- Count: 0
And then I have to restore from a backup. This has happened at least 3 times so far this year. What could be causing this?
 

Erucid

Sorceror
It seems you have few RunUO processes running and the same time and trying to do world save.
Explain... I only have one instance of mono running. This is a linux system and my start up script looks for instances of mono before starting the server so I can't have more than one.

Code:
ant2ne@Nedimare-01:/runuo/devel/Scripts/Misc$ cat /bin/autostartrunuo.sc
#/bin/bash
StartUO()
{
/bin/runuo.sc
}
MonoRunning()
{
echo "mono appears to be running,"
echo "so we assume runuo is running."
echo "all because mono is running does not mean uo is."
echo "nothing to do. exiting."
exit
}
ps -A | grep mono && MonoRunning
StartUO
 
ant2ne@Nedimare-01:/runuo/devel/Scripts/Misc$ cat /bin/runuo.sc
cd /runuo/devel
#mono runuo.exe
#mv console.log last.console.log
nohup mono runuo.exe -debug -v >> console.log &
ant2ne@Nedimare-01:/runuo/devel/Scripts/Misc$
 

Soteric

Knight
Do you have any kind of guard tools, scripts, cron jobs to monitor RunUO process and restart it in case of failure?
 

fwiffo

Sorceror
this is what I use to check for an instance of teamspeak server running, you could use the same for runuo, it will try to connect and retrieve a response:

"crontab_runned_script"
Code:
#!/bin/sh
cd /some/path
./tschecker
if [ "$?" = "2" ]; then
kill -9 $(cat /somepath/ts3server.pid) 2> /dev/null
sleep 1
kill -9 $(cat /somepath/ts3server.pid) 2> /dev/null
sleep 2
./start_server
fi

"start_server"
Code:
#!/bin/sh
cd /somepath
./ts3server_startscript.sh start

"tschecker":
Code:
#!/usr/bin/expect
set timeout 30
spawn telnet xx.xx.xx.xx 5125
expect {
default {
spawn telnet xx.xx.xx.xx 5125
expect {
default {exit 2}
"Welcome to the TeamSpeak 3 ServerQuery interface"
}
send "quit\r"
exit 0
}
"Welcome to the TeamSpeak 3 ServerQuery interface"
}
send "quit\r"
exit 0
 
Top