RoboRumble/Reported Problems

From Robowiki
Jump to navigation Jump to search

OutOfMemoryError

I'm running roborumble client version 1.5.4 on ubuntu (default VM: openJDK 1.6.0.0), and sometimes in my log I find: Exception in thread "Battle Thread" java.lang.OutOfMemoryError: Java heap space, can someone tell me a way to grab more information about this error or a way to solve it?

UPDATE: found more information

Exception in thread "Battle Thread" java.lang.OutOfMemoryError: Java heap space

at java.util.Arrays.copyOf(Arrays.java:2894)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:117)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:407)
at java.lang.StringBuilder.append(StringBuilder.java:136)
at robocode.io.Logger.log(Unknown Source)
at robocode.battle.Battle.setupRound(Unknown Source)
at robocode.battle.Battle.run(Unknown Source)
at java.lang.Thread.run(Thread.java:636)

--lestofante 12:07, 4 December 2008 (UTC)

To allocate more memory, you need to change "-Xmx256M" in roborumble.sh to something more like "-Xmx512M" or however much you feel comfortable allowing Java to eat. I find 512M is usually a safe value that doesn't run out of memory. --Rednaxela 14:16, 4 December 2008 (UTC)

I've followed your tip but here the another error: Fighting battle 4 ... ags.polished.PolishedRuby 1,jcs.Seth 1.8 Exception in thread "Battle Thread" java.lang.OutOfMemoryError: GC overhead limit exceeded and another: Exception in thread "Battle Thread" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390) at java.lang.StringBuilder.append(StringBuilder.java:119) at robocode.io.Logger.log(Unknown Source) at robocode.battle.Battle.setupRound(Unknown Source) at robocode.battle.Battle.run(Unknown Source) at java.lang.Thread.run(Thread.java:619) --lestofante 14:38, 10 December 2008 (UTC)


One of my clients also died from an OutOfMemoryError (heap space) while running PolishedRuby against Reaper. I'm using -Xm512, which should be plenty. Most battles run fine so you may have a memory leak? --Darkcanuck 17:48, 10 December 2008 (UTC)

I've looked into my log, the exception are launched only in battle with PolishedRuby.. The bad thing is after this error roborumble will not exit, blocking all external loop script. --lestofante 18:02, 10 December 2008 (UTC)

Yeah, my client also had an out of memory error with PolishedRuby when I came back to the computer now. I find this quite odd because it's gun is an exact copy from RougeDC and the movement doesn't store any data, and yet I've never seen RougeDC get an out of memory error with -Xmx512M. The only possible cause for this I can think of is that certain battles might last longer with PolishedRuby than RougeDC and because the gun consists of a PM and two DC configs memory usage is increased in longer battles. Still though, I doubt battles last that much longer really, so I'm quite perplexed... If anyone knows of any way to profile memory usage, I'm all ears. --Rednaxela 20:02, 10 December 2008 (UTC)

GC overhead limit exceeded exception mean that java garbage collector is working about 98% of application time... try some GC monitor (VisualVM has it) --lestofante 21:17, 10 December 2008 (UTC)

Well, in tests with VisualVM, I can't ever get GC overhead to exceed 20% with PolishedRuby and 10% with RougeDC (RougeDC surfs and thus eats much more cpu), so I'm not sure what's with these "98%" cases, but it does seem that the gun is causing much more GC activity than I'd like. It's looking like it's related to the data structure for the single-tick patternmatcher that's in there. I'll look into it more some time but right now I have a bunch of finals to do. --Rednaxela 09:06, 11 December 2008 (UTC)

I've deleted the old log, but if I remember well the exception is trigged only vs some robot, like jcs.Seth 1.8 (maybe your GC + enemy GC > 98%, maybe a bug trigged in particular condition). Actually this exception freeze my roborumble (switching to version 1.6.0 hasn't help), so I've excluded the bot. --lestofante 17:05, 11 December 2008 (UTC)

Bad results

Darkstorm's client has been uploading some problematic bad results in some cases such as here, and so has Alcatraz such as here. I really think the server should remove and reject all 0% scores where the expected score is greater than 10%... Or just reject 0% scores like the old server did... I really don't trust the scores right now with all those bad results scattered around... --Rednaxela 18:55, 16 December 2008 (UTC)

I gave a brief try at running 1.6.2 beta 2, and the rumble gave all sorts of problems for the new SilverSurfer (post-fix). I promptly switched back to 1.5.4. I'm not sure how Alcatraz and Darkstorm are configuring their client to get the 0 scores on 1.5.4 though. I've played around with the config, and I can only get it to happen on 1.6.2b2. So maybe they upgraded and didn't change their config file? So it still says 1.5.4.... --Skilgannon 21:10, 16 December 2008 (UTC)