Mono out of memory error.

Redirect Server Checker for the Source Engine (CS:S, TF2, DOD:S, HL2MP, etc)--formerly CSRSC
Post Reply
pelted
Posts: 9
Joined: Tue Dec 07, 2010 7:49 pm

Mono out of memory error.

Post by pelted »

Moved over here from svn discussion as it's a different issue.

Running mono SourceRSC.exe form /usr/local/bin
Result:

Code: Select all

Processing #289/13224::Compressing plate1x6.dx80.vtx....OK..Copying..OK
Processing #290/13224::Compressing plate1x6.dx90.vtx....OK..Copying..OK
Processing #291/13224::Compressing plate1x6.mdl....OK..Copying..OK
Processing #292/13224::Compressing plate1x6.phy....CreateProcess: error creating process handle
Unhandled Error:  Out of memory
  at System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0 
  at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0 
  at System.Diagnostics.Process.Start () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
  at CSRSC_Sharp.CSRSCapp.Main () [0x00000] in <filename unknown>:0 
  at CSRSC_Sharp.CSRSC.Main (System.String[] args) [0x00000] in <filename unknown>:0 
Press enter to continue
Running it a subsequent time.
Result:

Code: Select all

Processing #253/12908::Compressing slopeinverted4x4corner.mdl....OK..Copying..OK
Processing #254/12908::Compressing slopeinverted4x4corner.phy....OK..Copying..OK
Processing #255/12908::Compressing slopeinverted4x4corner.sw.vtx....CreateProcess: error creating process handle
Unhandled Error:  Out of memory
  at System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0 
  at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0 
  at System.Diagnostics.Process.Start () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
  at CSRSC_Sharp.CSRSCapp.Main () [0x00000] in <filename unknown>:0 
  at CSRSC_Sharp.CSRSC.Main (System.String[] args) [0x00000] in <filename unknown>:0 
Press enter to continue
And a third just for giggles.
Result:

Code: Select all

Processing #251/12655::Compressing glass.vtf....OK..Copying..OK
Processing #252/12655::Compressing interior_sides.vmt....OK..Copying..OK
Processing #253/12655::Compressing interior_sides.vtf....OK..Copying..OK
Processing #254/12655::Compressing interior_sides_bump.vtf....OK..Copying..OK
Processing #255/12655::Compressing interior_top.vmt....CreateProcess: error creating process handle
Unhandled Error:  Out of memory
  at System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0 
  at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0 
  at System.Diagnostics.Process.Start () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
  at CSRSC_Sharp.CSRSCapp.Main () [0x00000] in <filename unknown>:0 
  at CSRSC_Sharp.CSRSC.Main (System.String[] args) [0x00000] in <filename unknown>:0 
Press enter to continue
As you can see, if I continue like this for the 12655 files left missing from the redirect, in 50 more runs I will be done. :-( What's odd, is it doesn't discriminate over file size. For example, some passes have large map files, while other passes just fly through a bunch of small model files. Either way when it hits the wall it hits the wall.

Background:
Running SourceRSC on an Ubuntu linux distribution with Mono JIT compiler version 2.8.1. To be honest I've never touched Mono before but have several years dealing with linux server administration. I was hesitant to even deal with the build and install, but this is a test instance anyway, and SourceRSC seems like it would make my life much easier.
Masher
Site Admin
Posts: 3617
Joined: Thu Apr 20, 2006 2:54 pm
Location: America's Heartland
Contact:

Re: Mono out of memory error.

Post by Masher »

Try this version http://www.brainless.us/dls/sourcersc1952.rar

From some googling I'm assuming Mono's garbage collection is being too conservative. It's either that or an issue with your system/mono/who knows. I haven't heard any reports such as this from any of my other linux users. Hopefully it will help; let me know.
Masher
-----------
Please do not PM me unless asked to! We are a small company. If you have an issue or question it would be best to post it in the forums where it can help others in the future.

NEW Join our Discord!
pelted
Posts: 9
Joined: Tue Dec 07, 2010 7:49 pm

Re: Mono out of memory error.

Post by pelted »

My goodness. Whatever you changed just about caused me to fall out of my chair. I've been sitting here hitting "mono SourceRSC.exe" over and over for a while now in-between doing other things, and this just blasted through the 8230 remaining files in about 2 minutes.

Best line ever:

Code: Select all

Done!  Press Enter to continue
Lots of errors from spaces in one of the directories though, but that's what that other topic is about.

The Googling I did the other day on the Mono issue was pretty sparse at best. Not knowing much about its internals there was several references to compile time out of memory errors. Coming from an Objective-C background where garbage collection is new in my world, my first thoughts go to allocation leaks and some arbitrary buffer limit.
Masher
Site Admin
Posts: 3617
Joined: Thu Apr 20, 2006 2:54 pm
Location: America's Heartland
Contact:

Re: Mono out of memory error.

Post by Masher »

Wow, glad it worked, was skeptical myself. :P
Masher
-----------
Please do not PM me unless asked to! We are a small company. If you have an issue or question it would be best to post it in the forums where it can help others in the future.

NEW Join our Discord!
Post Reply