Nerun

Member
Hello!

I am new to ServUO and i have some doubts.

Server startup is TOO slow, it tooks 7.4 minutes (444 seconds) to start for me in a Core i3-4160. It's annoying and counterproductive if you are a scripter. If you are just running a shard, ok. Wait 7~8 minutes to a server startup is nothing, no one will restart server so many times a day.

My load:
ai.imgur.com_JRfGhYr.jpg

PS.: Ok, i have a bad machine, but it is just for scripting, actually i don't have a shard. RunUO is much faster, a few seconds to full load, BUT is by far more unstable then ServUO running over Mono: RunUO crashes a lot before a successful startup, ServUO never crashes with Mono. Probably because i am running RunUO with Joeku's Toolbar, and once ServUO has a NEW rescripted/updated version it fix the problem.

Getting back to issue: the problem seens to be "Reticulating spines...". What the hell is this?

Does this just happen to me?

EDIT:
As a fix, i will try Lokai's Versioning system. It was always a very good tool for scripters.
 
Last edited:
Unfortunately, my Versioning was written well before the reticulating splines (whatever the heck those are...) so it will not cover those. I hope it only needs to reticulate once and never again unless the splines have been changed. Lol.
 
Thats Vorpsires new addition to calc all the possible spots where the honesty items can drop
 
Well, can I turn it off? It seems to be recalculating on every restart. For developers, that is quite a hit to productivity.
 
As a future improvement maybe if, instead of recalculating the honesty sites every time the server starts, if it analyzes the hashes only (using md5sums or any software like this) to verify if there was any change, it would not need to recalc every start.
 
It goes decently fast on one of my R610s. However it is nice to turn off honesty when just testing on another machine. Makes the process a whole lot faster.
 
Replied; https://github.com/ServUO/ServUO/issues/3242

If my old Q6600 can out-perform an i-series CPU in this task, then your bottleneck must be I/O
Thank you for your answer. Now i am curious about whats happening to my system. It looks normal.

I made a test here: installed ServUO commit 3,582 on a VirtualBox 5.2 running Windows XP 32 bits, using 3 Gb RAM and 2 of the 4 cores from Core i3-4160 and... What surprise, it took only 45 seconds!!!!! WTF!!!!

Dude, i don't know whats happening to Linux... I have Debian Stretch plus mono-complete. Maybe mono is the bottleneck?
 
Your mono version?

Intel Pentium G3420 on SSD (ArchLinux Mono: 5.10.0):
Code:
Regions: Loading...done
World: Loading...
...done (4864 items, 929 mobiles, 1 customs) (0.30 seconds)
[Honesty]: Generating...
[Honesty]: Felucca - Reticulating splines... done in 72.48 seconds.
[Honesty]: Trammel - Reticulating splines... done in 73.93 seconds.
[Honesty]: Generation completed in 146.41 seconds.

Just in case anyone is asking.

Spectre v1/2 + Meltdown mitigation enabled.
 
To run mono in 32bit you've to install whole 32Bit libraries to debain.

dpkg --add-architecture i386
apt-get update
apt-get install libc6-i386
 
To run mono in 32bit you've to install whole 32Bit libraries to debain.

dpkg --add-architecture i386
apt-get update
apt-get install libc6-i386
Uh, i made it. But it ask for binutils:i386 and linux-headers:i386, and i use 64 bits version of both. I don't to want to change them.
 
Installed Mono 5.10 from official site. Installation OK.

Compiled ServUO. OK.

Running ServUO. Error:

Code:
Scripts: Compiling C# scripts...Error:
System.ArgumentException: Path is empty
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00027] in <62351af909f64c3d9f8698380a6f7518>:0
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) [0x00000] in <62351af909f64c3d9f8698380a6f7518>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.File.OpenRead (System.String path) [0x00000] in <62351af909f64c3d9f8698380a6f7518>:0
  at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch (System.CodeDom.Compiler.CompilerParameters options, System.String[] fileNames) [0x00023] in <6bff51911ba74b8784948845d461f16f>:0
  at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromFile (System.CodeDom.Compiler.CompilerParameters options, System.String[] fileNames) [0x00006] in <6bff51911ba74b8784948845d461f16f>:0
  at Server.ScriptCompiler.CompileCSScripts (System.Boolean debug, System.Boolean cache, System.Reflection.Assembly& assembly) [0x001c8] in <c423caf049b745638bdab1623e1f1fec>:0
  at Server.ScriptCompiler.Compile (System.Boolean debug, System.Boolean cache) [0x00034] in <c423caf049b745638bdab1623e1f1fec>:0
  at Server.Core.Main (System.String[] args) [0x00660] in <c423caf049b745638bdab1623e1f1fec>:0
This exception is fatal, press return to exit
[doublepost=1522000932][/doublepost]Uh, i found the solution:
https://www.servuo.com/threads/issue-with-mono-compiler.8062/#post-50682

Basically, open ScriptCompiler.cs and look for:
Code:
CompilerResults results = provider.CompileAssemblyFromFile( parms, "");

And change to:
Code:
CompilerResults results = provider.CompileAssemblyFromFile( parms, files );
[doublepost=1522001444][/doublepost]New test using Mono 5.10 (64 bits):
  • Server compiles OK
  • ServUO run OK (but just after change ScripCompiler.cs as i mentined above)
  • Startup time: 189.36 seconds (3 minutes and 10 seconds)!
190 seconds is not so good as you guys, but it's around 2.3 times faster than with Mono 4.6.

Well, it's fixed enough to me. But i will edit Honesty.cfg anyway PLUS Lokai's Versioning. That's a "killer combo" for any developer!
 
Last edited:
Yeah you found the solution. I‘m going to push this to git.
[doublepost=1522066221][/doublepost]
Yeah you found the solution. I‘m going to push this to git.

Just wanna add. This may take some time. I've to figure out, how not to break Mono 4.x
[doublepost=1522079310][/doublepost]Pushed to git:
https://github.com/ServUO/ServUO/pull/3250

EDIT: Found another possible issue. The makefile is building debug builds including optimize.
 
Last edited:
Question, what is the reticulating splines for? I see it mentions Honesty, but what is it that takes the server to long to generate, or reticulate? lol

I've just downloaded ServUO and have begun the process of transferring old scripts across from my old shard
It's running on a dedicated Samsung 850 Pro SSD and even with that, the process takes about 60 seconds on average to load that section.

[Honesty]: Generating...
[Honesty]: Felucca - Reticulating splines... done in 26.97 seconds.
[Honesty]: Trammel - Reticulating splines... done in 28.05 seconds.
[Honesty]: Generation completed in 55.02 seconds.
 
private static void GenerateHonestyItems()
{
CheckChests();

Utility.PushColor(ConsoleColor.Yellow);
Console.WriteLine("[Honesty]: Generating...");
Utility.PopColor();

var sw = new Stopwatch();

var s = 0.0;

/*

if (_FeluccaArea == null)
{
Utility.PushColor(ConsoleColor.Yellow);
Console.Write("[Honesty]: Felucca - Reticulating splines...");
Utility.PopColor();

sw.Restart();

_FeluccaArea = SpawnArea.Instantiate(Map.Felucca.DefaultRegion, _Filter, ValidateSpawnPoint, true);

sw.Stop();

s += sw.Elapsed.TotalSeconds;

Utility.PushColor(ConsoleColor.Green);
Console.WriteLine("done ({0:F2} seconds)", sw.Elapsed.TotalSeconds);
Utility.PopColor();
}

if (_TrammelArea == null && TrammelGeneration)
{
Utility.PushColor(ConsoleColor.Yellow);
Console.Write("[Honesty]: Trammel - Reticulating splines...");
Utility.PopColor();

sw.Restart();

_TrammelArea = SpawnArea.Instantiate(Map.Trammel.DefaultRegion, _Filter, ValidateSpawnPoint, true);

sw.Stop();

s += sw.Elapsed.TotalSeconds;

Utility.PushColor(ConsoleColor.Green);
Console.WriteLine("done ({0:F2} seconds)", sw.Elapsed.TotalSeconds);
Utility.PopColor();
}

*/

This will get rid of that recirculating spline issue :)
 
Or you would do it correctly and just turn off the honesty system if you dont want it. No need for it on a test shard copy so you can turn it off. On the live server I doubt you will restart so frequently that it would be an issue in the first place
 

Active Shards

Donations

Total amount
$0.00
Goal
$1,000.00
Back