[Home]RoboRumble/ReportedProblems03042007

Robo Home | RoboRumble | Changes | Preferences | AllPages

Server mode and the same robot battles over and over

For some reason the matt.UnderDark3 2.3.21 robot is not working for a battle (it loses all of the contests 350-0) and as a result it keeps coming back as a priority battle - to the point now that 90+% of the fights are matt.UnderDark3 against someone - but no real data is getting generated. Is there a method to get UnderDark3 out of the priority list so that my Roborumble starts generating some real data? JimS

REALLY!? Wow... Does anybody else have these problems with my bot? --UnderDark

-- Update: I don't really have any clue either why UnderDark3 is failing. I ran it outside the rumble and it just never appears in the arena. The console has a cryptic message about not loading, but no error traceback. I did delete and re-download the bot a couple times and that did not help. JimS

What Java & Robocode version are you using? UnderDark3 was written on J2SE 1.5.0 with Robocode 1.0.7, but it should run on 1.4.* & 1.0.6 --UnderDark

I will double check tomorrow on the exact Java version, Robocode 1.0.7, Java 1.4.x, WinXp? Pro. (The rumble is running at nights on my machine at work. UnderDark works fine here at home.) JimS

Do you have the statement below in your roborumble.bat file? If not, it disables bots that read/write from file. -- GrubbmGait

 java -Dsun.io.useCanonCaches=false -Xmx256M  etc. etc.

Hmmm... did not seem to help. My Java version is 1.4.2_04. I checked the console output from the normal arena again and I do have an error message:

SYSTEM: Could not load matt.UnderDark3 2.3.21 : java.lang.UnsupportedClassVersionError?: matt/UnderDark3? (Unsupported major.minor version 49.0) java.lang.UnsupportedClassVersionError?: matt/UnderDark3? (Unsupported major.minor version 49.0)

    at java.lang.ClassLoader?.defineClass0(Native Method)
    at java.lang.ClassLoader?.defineClass(ClassLoader?.java:537)
    at robocode.security.RobocodeClassLoader?.loadRobotClass?(RobocodeClassLoader?.java:196)
    at robocode.battle.Battle.initialize(Battle.java:501)
    at robocode.battle.Battle.run(Battle.java:149)
    at java.lang.Thread.run(Thread.java:534)
=========================

Looks like my version of Java is incompatible in some way. JimS

The weird thing is that I wrote UnderDark3 under 1.4.2. Since upgrading my java version, I have changed very little of UnderDark3's main code. --UnderDark

I am running RR@Home with JRE 1.5 and Robocode 1.0.6 and have no problems with UnderDark3 or FloodHT. It really is a problem running 1.5 compiled bots in a 1.4.2 environment (ph.mini.Archer being the first I believe). Maybe there is a compatibility switch in Java 1.5 to let it act as 1.4.2, anyone knows? --GrubbmGait

I installed JDK 1.5.0_04 and now UnderDark runs and battles just like any other killing machine. JimS

Just to try to nail the problems, what compilers are used to compile the problembots. I know Kawigi uses javac of java 1.5. I use jikes 1.22 and nobody seem to have problems with my (newer) bots. @UnderDark: what do you use? --GrubbmGait

I use Jikes within NetBeans 3.6, but when looking, I found a Checkbox labled "Enable JDK 1.4 source" that was UNCHECKED, the tooltip states "Pass -source 1.4" flag to the compiler to recognize JDK 1.4". Should I check this box? --UnderDark

Just try it with your next version and say so when entering. I'll try it then on a 1.4.2 environment. For the rating of your bot it should not matter, it should only assure that every client is capable of running battles with UnderDark3 --GrubbmGait

UnderDark3 2.3.22 has been realesed, and it used the flag, please try it now --UnderDark

UnderDark3 2.3.22 does OK on a JRE 1.4.2 machine, so keep that flag checked. --GrubbmGait

Problem running teamrumble

I am having difficulty running teamrumble any ideas? - here is the console output...

E:\RoboRumble\robocode>cd robots

E:\RoboRumble\robocode\robots>java -Xmx128M -cp .;../robocode.jar;../codesize.ja
r; roborumble.RoboRumbleAtHome ./roborumble/teamrumble.txt
Sizes File not found !!!
Downloading participants list ...
Downloading missing bots ...
Not able to read properties
Downloaded file is wrong or corrupted:pe.SandboxDTTeam_1.71.jar
Could not download bot pe.SandboxDTTeam_1.71.jar
Not able to read properties
Downloaded file is wrong or corrupted:apvteam.MambaTeam_0.7.5.jar
Could not download bot apvteam.MambaTeam_0.7.5.jar
Not able to read properties
Downloaded file is wrong or corrupted:kawigi.sbf.TidalWave_0.8.jar
Could not download bot kawigi.sbf.TidalWave_0.8.jar
Not able to read properties
Downloaded file is wrong or corrupted:cx.mini.DemoniacNimrods_0.50.jar
Could not download bot cx.mini.DemoniacNimrods_0.50.jar
Not able to read properties
Downloaded file is wrong or corrupted:rz.team.GlowingHawks_0.1.jar
Could not download bot rz.team.GlowingHawks_0.1.jar
Not able to read properties
Downloaded file is wrong or corrupted:myl.micro.TroodonPack_1.10.jar
Could not download bot myl.micro.TroodonPack_1.10.jar
Not able to read properties
Downloaded file is wrong or corrupted:ethdsy.MalackaTeam_1.2.jar
Could not download bot ethdsy.MalackaTeam_1.2.jar
Not able to read properties
Downloaded file is wrong or corrupted:sgp.DrunkenTeam_1.12.jar
Could not download bot sgp.DrunkenTeam_1.12.jar
Iteration number 0
Preparing battles list ...
Executing battles ...
Uloading results ...
Sizes File not found !!!

E:\RoboRumble\robocode\robots>goto run

-- Paul Evans

In your teamrumble.txt file does TEAMS=YES? -- Kuuran - Yes -- Psul

Strange, it seems that at some point (download step) it is unable to read properties file (teamrumble.txt) so it fails to recognize the downloaded files as teams. Is the properties file locked by some application (ie. editor) ? -- Albert No -- Paul

teamrumble.txt ...

#RoboRumble@home properties - Team battles

#properties for executing the modules. Use YES or NOT

DOWNLOAD=YES
EXECUTE=YES
UPLOAD=YES
ITERATE=NOT

#It tells the program if this competitions is for teams. 
#It is necessary since teams are treated by Robocode sligthly different.

TEAMS=YES

#properties for the battle engine

USER=Paul Evans
INPUT=./roborumble/files/battlesTeams.txt
ROUNDS=10
FIELDL=1200
FIELDH=1200
OUTPUT=./roborumble/files/resultsTeams.txt

#properties to retrieve bots from internet

BOTSREP=./
TEMP=./roborumble/temp/

#properties to retrieve participants list from internet

PARTICIPANTSURL=http://robowiki.dyndns.org/?RoboRumble/ParticipantTeams
PARTICIPANTSFILE=./roborumble/files/participTeams.txt
STARTAG=pre

#properties to prepare the battles list.
#Keep this parameter low. Teams tend to consume lots of resources and crash often.

NUMBATTLES=5

#properties to upload the results

RESULTSURL=http://rumble.robowiki.dyndns.org/servlet/UploadedResults
#RESULTSURL=http://localhost:8080/examples/servlet/UploadedResults

Client hangs in battle stage

I'm trying to run roborumble on my work PC. It's a new, fast and mean machine. Running Windows XP Pro and the latest 1.4.1 Java. The client seldomly can run more than 20 battles in a row, then it just hangs there. No error message, no nothing. I can interrupt the batch job by pressing CTRL-C, but I seldom get to upload results since this freeze most often gets in the way. Anyone have a clue? Robocode itself seems to run perfectly. (At blazing speeds of 270 fps with two GloomyDarks being rendered, an 2700+ fps in minimized mode!!!). -- PEZ

Strange. It happens sometimes when it gets out of memory. Are you running many applications on the PC? Try changing the parameter -Xmx256M to -Xm128M and see what happens. If it is a memory problem, then it should throw a Java Out of Memory exception and stop. -- Albert

No, not running many (or bloaty) apps. And the machine has 1GB of memory. Though I will test what you suggest any way. -- PEZ

I have the same problem in RoboLeague. ... Wonder what it could be! -- PEZ

I think my home machine suffers from this problem just running the normal arena. At random times, usually when running minimized it just locks up. I have a 3.6Ghz P4, WinXp? Pro, 2Gb of memory, Java 1.5, Robocode 1.0.7. Does not seem to be related to the Java version since it also froze when I had Java 1.4.2_08. I switched to Java 1.5 hoping it would fix the problem. It does not seem to happen to my work machine although it has problems running some robots (like UnderDark ). Meanwhile when I try RoboRumble on the home machine it never gets past battle 0 - no messages - just no completed battles. JimS

There is a problem with multiprocessor (and Hyperthreading) machines. Kawigi has developed a version which seem to work OK on these machines. Check the OpenSourceRobocode/Contributions page. -- GrubbmGait

The Kawigi version worked! Thanks for the tip. My home battles in the arena and in the rumble are now working just fine. JimS


Every time Chameleon 0.91 comes up I get this:
Fighting battle 8 ... arthord.NanoSatan Kappa,wilson.Chameleon 0.91
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
        at java.util.Vector.elementAt(Vector.java:427)
        at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.java:52)
        at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTableModel.java:75)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:92)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:56)

C:\robocode\robots>goto run
I rarely see this with other bots, but I always see it every time Chameleon comes up. I am thinking about removing it from my participants lists as there is no sense in me even running those matches. Just me or is this a problem for everyone? -- jim

I have no problems with Chameleon on any machine. That's one strange problem. Have you looked at the roborumble BattlesRunner class source any? Maybe you can print some diagnostics or something there that could help in nailing the bug. -- PEZ

It happened to me with another bot (Ender?). It usually happens because the bot (Chamaleon) is not correctly installed. Delete its jar file from the /robots directory, and delete it from /robocache. Then just let RR@H download it again and reinstall. -- Albert

Thanks Albert. I suspect that you had the correct answer. There was nto even an entry in the .robotcache direrctory. -- jim


I'm having a problem running the roborumble client, it was running perfectly for 3 days, then suddenly that happened:

C:\robocode\robots>java -Xmx256M -cp .;../robocode.jar; roborumble.RoboRumbleAtH? ome ./roborumble/roborumble.txt Downloading participants list ... Downloading missing bots ... Exception in thread "main" java.lang.StringIndexOutOfBoundsException?: String ind ex out of range: -1

        at java.lang.String.substring(Unknown Source)
        at roborumble.netengine.BotsDownload?.checkJarFile?(BotsDownload?.java:152)

        at roborumble.netengine.BotsDownload?.downloadBot(BotsDownload?.java:141)
        at roborumble.netengine.BotsDownload?.downloadMissingBots?(BotsDownload?.ja
va:109)
        at roborumble.RoboRumbleAtHome?.main(RoboRumbleAtHome?.java:40)
can anyone help me (i already tried re-installing, same problem.)? Thnx, Axe

Does it work if you set DOWNLOAD=NO in the roborumble.txt file? -- PEZ

About the above StringIndexOutOfBoundsException? that happened with me, it's solved. Just deleted the ..\robocode\robots\roborumble\files\particip1v1.txt file. probably corrupted. Thnx pez. -- Axe

Well, the problem just happened again. This time i have oppened the roborumble sources:

private boolean checkJarFile(String file, String botname) {	
    String bot = botname.substring(0,botname.indexOf(" ")); <== PROBLEM LINE!!! 
    bot = bot.replace('.','/');
    bot = bot + ".properties";
    try {
	JarFile jarf = new JarFile(file);
	ZipEntry zipe = jarf.getJarEntry(bot);
	if (zipe == null) { System.out.println("Not able to read properties"); return false; }
	InputStream properties = jarf.getInputStream(zipe);
	Properties parameters = null;
        parameters = new Properties(); parameters.load(properties); 

	String classname = parameters.getProperty("robot.classname","");
	String version = parameters.getProperty("robot.version","");
	if (botname.equals(classname+" "+version)) return true; else return false;
    } catch (Exception e) { System.out.println(e); return false; }
}
The problem is that if any bot in the participants list doesn't have the space between the name and version, an exception blow up the code. My suggestion is to move that try up, so it can catch that problem, witch is a honest mistake that can happen with anyone editing the participants list. The bot line that is causing the problem is the last one:
pez.micro.VertiMicro,1770
(sorry, pez).It need to be repaired. I didn't corrected the participants list, since i dont have that right. By the way, i have tryied to compile the code, in order to test my solution, but i am missing the javax.servlet import in my machine. Is it needed the J2EE? -- []'s Axe

I just had downloaded the beta 6.1 version, and it works fine. The problem above seems to be solved with that version, but the version alpha 5 will not run. -- Axe




I just installed RR@H client. When i started it all missing bots were downloaded, but when it tried to run battles i got this error:
Downloading particiants list ...

Downlopading missing bots ...
Iteration number 0
Preparing battes list ...
Executing battles...
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Fighting battle 0 ... myl.nano.Kakuru 1.20,ara.Shera 0.88
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Preventing unknown thread Application Thread form access: (java.io.FilePermission)
Exception in thread "Application Thread" java.util.MissingResourceException :
      at java.util.ResourceBundle.throwMissingResourceExcpeitn(ResourceBundle.java:756)
      at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:674)


      ..... and so on
i am using jdk 1.3.1 . what am i doing wrong ? -- deathcon

Did you installed codesize.jar into the robocode directory? If not, you should do it, or set the properties file to not run battles for minis,micros,nanos. --Albert

Installed? i just copied codesize.jar into my robocode directory. --deathcon

Intalled = copied. So it should be OK.

If you are running java 1.3.x you wil have to create a file into robocode directory called robocode.policy with the following content (you need to do it in order to tell Robocode you are controlling it from outside. If you upgrade to java 1.4.1 you will not have to do it):

grant { permission java.security.AllPermission; };

-- Albert


I don't know if here is an appropriate space to talkabout robocode general problems, so, if not my apologies. Recently there was a discussion in the robocode repository site about a security misbehaviour in Sun's JRE 1.4.2, witch dennies the robot access to it's files diretory (that result in a java.security.AccessControlException? that freezes the bot at the begining of the round - or when it tries to access the files). That was reported by Simonech, but i have had myself the same problem (I run in a XP). My solution was to retreat(strategic retreat :-) back to JRE 1.4.1. Does anybody knows something about this? I am going to ivestigate it with sun, but if someone knows the solution or about any white-paper... Thnx, Axe

I'm pretty sure that I can re-write my bot to deal with this problem, but it means that while running JRE 1.4.2, all non-data bot or bots that deals with that saving data misbehaviour will have a hudge (and not fair) advantage. I just don't think it's fair. When I find a solution (probably an ugly while(failed){load(data);} thing) I'll let all know. -- Axe

I don't have a solution, I reported this problem also on the robocode alphaworks forum, the forum on robocoderepository, and also I saw this on the CompressedSerialization page.
The problem with the while(failed){load(data)} is that when it fails, your robot also get disabled, so loading data will be of no use :-)
Unfortunately I cannot just "retreat" to 1.4.1 beacuse I'm developing something that needs the new features of 1.4.2. Maybe someone can try and debug the thing and post a fix :-) -- Simonech

Indeed. Even if the AccessControlException? is caught the bot is disabled. I'm hopeless about it... -- Axe

Can't you install a Java 1.4.1 JRE and use that to run Robocode? I have three or four JRE's on my machine. -- PEZ

Really?!? I've never tryied this one, how do I do it, once I installed the 1.4.1? -- Simonech

Hmmm... Well, you install it to a different directory, and when you run it you specify that directory to run from (i.e. in Windows you might run C:\j2se1.4.1_02\bin\java -jar robocode.jar). I once installed two versions of the whole JDK so I could compile my Java applets under older platforms, and then realized I didn't have to (I could simply set the target flag in the compiler). -- Kawigi

ThanX?, done, the only drawback is that now the control panal display the options of the Java 1.4.1 and not the newer options (for example the automatic update thing) -- Simonech

Just reinstall the new SDK and that should be fixed. And in the future; never overwrite an existing JRE that works for a particular task. =) -- PEZ

One more thing. Simone, the "Send email notification that RoboRumble/ReportedProblems has been changed." thingy probably doesn't do what you think it does. -- PEZ

I did not installed over the 1.4.2, but just installed the JRE 1.4.1, now I've both, and if I call the java command with the full path robocode works ok with the 1.4.1, but if typing just java I run things on the 1.4.2 sdk, so everything is ok -- Simonech

I am concerned not about my JRE, but with the other users JREs. Since the client runs in many machines, the ones with 1.4.2 will afect the saving data bots. If we could contour this problem within the bot code (getting hopeless 'bout it), the bug(?) will not afect the competition. This weekend i'll try to isolate and reproduce the problem in order to report it as a bug to Sun. -- Axe

Robocode will go open source quite soon I think, and then we can probably fix this problem there. At the moment I think there's only 10 or so people running the RR@H client and we could maybe stress the importance of not running it under 1.4.2 yet. -- PEZ


Eek! I get the following crash bug when running the new beta6 with server10:
Iteration number 0
Downloading participants list ...
Downloading missing bots ...
Downloading rating files ...
Preparing battles list ... Using smart battles is true
Executing battles ...
Fighting battle 0 ... cx.Lacrimas 1.12,lv.Ender 0.6.5
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsExceptio
n: 1 >= 1
        at java.util.Vector.elementAt(Unknown Source)
        at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.jav
a:52)
        at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTable
Model.java:75)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:
95)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:74)


C:\rrhome\robocode\robots>goto run

C:\rrhome\robocode\robots>java -Xmx256M -cp .;../robocode.jar;../codesize.jar; r
oborumble.RoboRumbleAtHome ./roborumble/roborumble.txt
Iteration number 0
Downloading participants list ...
I've gotten this bug a couple times now; it crashes every 2 or 3 pairings, so it never manages to get through an iteration. What's the deal? -- Vuen

It could be that your Lacrimas jar file is corrupted. Try deleting it. -- PEZ


The ranking tables look like they have lost alot of data - I think there is a problem :) -- Paul Evans

What worries me is that it happens for all competitions, so it is not a problem related to a concurrent update. The only explanation I can find is that some one hacked the participants file on the client, in order to run specific pairings, and then the client sent the order to the server to remove the "old" participants. The ranking should recover prety fast (only one battle per bot is needed to rebuild it). We will have to think about how avoiding it in the future. -- Albert

How about having the client only upload the info on who to remove when it has downloaded the list this iteration? -- Tango

Maybe I can set up a second server where people can test stuff like focused pairings and such... Would it help you think? -- PEZ

People run pairings like that so they can change the rankings, there would be no point doing it on a different server. I don't think it really matters, now the server makes sure all bots have all pairings, and averages all battles of the same pairing. One pairing having lots of battles doesn't change the rankings much, it just makes it a tiny bit more accruate. The only problem is all the other robots disappearing, but i think my idea would fix that. -- Tango

How can you know why someone does this? But, it's a possibility, I agree. Your suggestion works as long as people don't change the client code. I have a version of the client that's able to run "focused" opponents, like RoboLeage?, that I used against my own test server back when the client didn't try to give new bots lots of exercise. Anyone can patch clients like that. I think that maybe we should make the server responsible for keeping the ranking table clean. Not that I know how that should be realized though... -- PEZ

I can't be sure why someone does something, but i have to assume they have at least some sense of logic and capability of rational action, and from that can work out likely reasons for actions. The server doing the checking is the obvious method, but as you say, it isn't so obvious how to do it. From what i know, the server isn't really set up with that in mind. You should be able to get the server to check the participents list like the client does, every 12 hours or something, and remove bots using that. -- Tango

Eek! Should the client have the power to remove old bots then? Couldn't the rankings page just load the participants page and clean the rankings table itself say once a day when someone submits results? Otherwise, you may want to encrypt the files the client writes; although the program is open source, it would make it somewhat harder for someone to edit the files directly, and it's relatively easy to use an encryption stream to read and write the files. -- Vuen

If a servlet is able to read a wiki page file, then it could be done. Otherwise I can't see the way to do it (unless we move the participants maintenance to the servlets server). -- Albert

I think Java has many classes to parse html files under swing etc. But, somebody needs to study it. -- SSO

It's not the parsing. Albert is doing that already from the client. But it should be no problem from the servlet either. I can look in to it. -- PEZ

Today I run RR@H for two hours! When I come back to my PC I find this error :

 Fighting battle 1 ... lv.Ender 0.6.5,md.Pasta 1.1

 HotSpot? Virtual Machine Error, Internal Error
 Please report this error at
 http://java.sun.com/cgi-bin/bugreport.cgi

 Java VM: Java HotSpot?(TM) Client VM (1.4.0_01-b03 mixed mode)

 Error ID: 43113F2652414D452D41503F491418160E435050005B

 Problematic Thread: prio=5 tid=0x00953398 nid=0xb70 runnable

However the battles are continued ! --Caimano

Are you sure they continued? The batch file loops, so if java crashes it just starts again. It's the iteration numbers that will be the clue, did they start again, or carry on? - RESULT = davidalves.net.JALT 2.1 wins 5390 to 817 Fighting battle 6 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1 RESULT = davidalves.net.JALT 2.1 wins 5618 to 651 Fighting battle 7 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1 RESULT = davidalves.net.JALT 2.1 wins 5446 to 887 Fighting battle 8 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1 RESULT = davidalves.net.JALT 2.1 wins 5176 to 1546 ul]]

It could have been me running an old client. -- PEZ

is it possible for your old client get the @home server to send me requests to run battles for a bot that has been removed for the participents list? -- Paul

I don't think so. Something else must have happened. -- PEZ


When i run the client, everything is hunky dory while the battles are running, however when it comes time to upload it all goes wrong. the client proclaims it has uploaded results for battles it didnt run in the last iteration, then crashes:
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 2
at roborumble.netengine.ResultsUpload.uploadResults<ResultsUpload.java:124>
at roborumble.RoboRumbleAtHome.main<RoboRumbleAtHome.java:92> 

Any ideas?? --Brainfade

Please, try deleting all files in /files and /temp and see what happens. It looks like there is something wrong in the results file but it never gets deleted. -- Albert

Well, now you've really upset it. All the initiation seems to be ok, but then:

Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
at java.util.Vector.elementAt(Unknown Source)
at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.java:52)
at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTableModel.java:75)
at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:95)
at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:82) 

I tried deleting all relevant files and reextracting it but i had the same problem. Even when i downloaded the client again... --Brainfade

It seems like Robocode is failing to return the results correctly. May be you could start Robocode and run the battle that is causing problems, to see if it's crashing or doing something strange. -- Albert

Is it just me or is Kenneth really slow in RR@H? Since it was downloaded and my computer started running battle, my RR@H output has dropped to a crawl. It is so slow that I think that it is no longer working although Task Manager shows that java is taking some cycles. It seems to be running OK on my Linux box but my XP box is dragging so slowly I can not tell if I am even running rounds. I have tried both Version 7 and version 9 of the client and have the same behavior. It makes no matter who Kenneth's opponent is. jim

So is Kenneth running ok now then for everyone?? I think the problem could be that a particular circumstance causes it to stay in a while loop for longer than it should. My movement code is crufty as hell at the moment, and i'll clean that up and continue tweaking when i get home (I'm at work atm). However, for now i'll just remove him...--Brainfade

-- Brainfade


Fighting battle 6 ... arthord.micro.Muffin 0.4.1,jekl.mini.BlackPearl .75



****************
Another exception has been detected while we were handling last error.
Dumping information about last error:
ERROR REPORT FILE = (N/A)
PC                = 0x6D3CF788
SIGNAL            = -1073741819
FUNCTION NAME     = (N/A)
OFFSET            = 0xFFFFFFFF
LIBRARY NAME      = (N/A)
Please check ERROR REPORT FILE for further information, if there is any.
Good bye.
????

-- Kuuran


Trying to view the rankings I get a page in HTML (not parsed) with this in a comment:

java.lang.NullPointerException
	at Rankings.doPost(Rankings.java:54)
	at Rankings.doGet(Rankings.java:20)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

with about a page full of other "at"'s.

-- Tango

Yeah, it seems the RR server is under heavy load now. I have had to restart it several times. The RR@H client also has some troubles uploading results. -- PEZ


What the heck?! Don't tell me this was just random chance... I killed the client and deleted the results file when I saw this, but I think there's a bug here. --David Alves

Fighting battle 0 ... md.November 1.0,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 4482 to 1108

Fighting battle 1 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5563 to 629
Fighting battle 2 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5738 to 787
Fighting battle 3 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5344 to 857
Fighting battle 4 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5486 to 866
Fighting battle 5 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5390 to 817
Fighting battle 6 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5618 to 651
Fighting battle 7 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5446 to 887
Fighting battle 8 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5176 to 1546
Fighting battle 9 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5328 to 1168
Fighting battle 10 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5365 to 767
Fighting battle 11 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5342 to 1008
Fighting battle 12 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5549 to 980
Fighting battle 13 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5735 to 707
Fighting battle 14 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5501 to 771
Fighting battle 15 ... bvh.hdr.Hodh</a.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5677 to 842
Fighting battle 16 ... bvh.hdr.Hodur 0.3,davidalves.net.JALT 2.1
RESULT = davidalves.net.JALT 2.1 wins 5058 to 893
Fighting battle 17 ... davidalves.net.JALT 2.1,kawigi.sbf.FloodMini 1.4
RESULT = davidalves.net.JALT 2.1 wins 2683 to 2680%]]. but was wrong??? --[[deathcon]]

It downloads and runs fine on my system. Sometimes the client gets a corrupt (or corrupts maybe) a downloaded bot jar. It's usually fixed by removi davidalves.net.JALT 2.1 wins 4088 to 872

Similar things have been reported before, IIRC. I don't think you really need to delete the results file; I think the results are valid. It does seem to be a bug, though, you're right. -- Tango

Could be a bug or a feature; it always looked to me like matches which create a high PBI get re-checked earlier. But sometimes the client goes a bit overboard. :-) The most bizzare thing I've seen was 49 battles fought between Aleph 0.2 and 0.3... while it had not fought more than two against any oter bot. -- Jamougha

I don't think it's a PBI thing, my PBI for Hodur is only -2.1. :-p --David Alves

Hmmm, you're right, there would be a few more worthy cases there. :p In that case I don't know - something must cause it. Anyone actually know how the client selects battles? -- Jamougha

It is clearly a bug. The client is not that intelligent to select battles based on PBI. I'w have to take a look when I get some time. Anyway, it is not a serious bug. -- Albert

Bug or no bug: poor blind Hodur beeing bullied like this! --Loki


An old verion of a bot of mine is still showing up in the rankings: bvh.fnr.Fenrir 0.3. Is it possible that a client runs an old battle and uploads these results (i think i saw something similar mentioned with SandboxDT 2.11)? --Loki

That's exactly what happened. The old bot will disappear from the ranking page soon. --David Alves

Then i will have a bit more patience. --Loki


I have started robocoding again after a long break. It's great to see that RoboRumble@Home is working! At the moment though I cannot run the client, because it completely freezes my girlfriend's computer on which I'm forced to work at the moment. Hopefully you guys don't mind me participating in the rumble without investing processor time. But no worries, my own computer should be fixed within one, or at most two, weeks. --Vic

Welcome back, Vic. -- Axe

If your girlfriend's computer is a P4 system with WindowsXP you might experience problems with Java and hyper threading. Check the WindowsXP page for possible solutions. -- PEZ

Thanx Axe. PEZ, I checked but could not solve the problem. I think this problem is specifically for this computer. It often crashes unexpectedly, especially when it has a lot of processing to do, for instance in games. --Vic

Ah, well. I don't mind you being a free rider with a good excuse like that! =) -- PEZ


My client is aborting execution with the following msg:

Fighting battle 21 ... axeBots.SilverSurfer 1.20,bvh.mini.Freya 0.20
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsExceptio
n: 1 >= 1
        at java.util.Vector.elementAt(Unknown Source)
        at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.jav
a:52)
        at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTable

Model.java:75)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:
95)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:74)
Allways with Freya 0.20... -- Axe

It happens sometime that a bot is incorrectly downloaded but RR@H thinks it has been correctly downloaded, and then when a battle is run robocode crashes. Delete Freya (both from robots and robocache directories) and let RR@H download it again. -- Albert

Solved. Thnx. The problem was a little more serious: my HD got corrupted (and Freya´s files gone with it)... -- Axe

Suddenly my client refuses to run priority battles. SilverSurfer has only 152 battles fought and yet the client runs completely random pairings... Any idea what's going on anyone? The client doesn't complain downloading particpants lists and stuff... -- PEZ

Strange... now it seems to prioritize SilverSurfer again... -- PEZ

Some time it makes crazy things (like not running priority battles or run always the same battle). There is probably some logical bug on the client, but since it is not critical and got no time I have never fixed it. The besst solution is just stop the client and start it again. -- Albert


I have updated Locke to version 0.2 and immediately it gets ranked with 700+ matches run! That can't be right now can it ;-) I tried removing 0.2, and that indeed removes it from the rankings. Hours later (when all other clients should be aware of the removal) I added it back again. Same thing happens! Does anyone have any idea what's the problem here? --Vic

That sounds truly strange! You haven't had a version 0.2 earlier, have you? -- PEZ

When a bot is removed the details file is not deleted. So when you add it back the matches that could have run "reapear". -- Albert

Ok, so if anything goes wrong, removing and reentering the bot doesn't help. I'll rename the bot then. Let me see if that helps. Btw, maybe I made a mistake myself when I first entered version 0.2. I forgot the alphabetic order and may have put it in front of the 0.1.9.3 version. That may have caused the initial fault. --Vic

You can put bots in any order (they were disordered at the beginning). The alphabetical order is just for comodity. There is a bug in the client that some times makes it to repeat a single battle in a kind of almost infinite loop. May be this is what happened. -- Albert


I just uploaded my new bot HuntedHunter?. I added it to participants but when i run my client and it tries to download the jar i get this:
<Downloading ...cf.HuntedHunter_1.10
Are you sure cf.HuntedHunter_1.10 is a bot/team? Can't download it.

Downloaded file is wrong or corrupted:cf.HuntedHunter_1.10.jar
Could not download bot cf.HuntedHunter_1.10.jar
Any idea by what this is caused. (The packeged bot runs on my computer ) --deathcon

Thanx brainfade. but was wrong??? --deathcon

It downloads and runs fine on my system. Sometimes the client gets a corrupt (or corrupts maybe) a downloaded bot jar. It's usually fixed by removing the offending jar and trying again. -- PEZ

You put an underscore between the name and the version number, it didn't like it.... -- Brainfade

stupid me %D --deathcon


PulsarMax 0.2.12 vs kawigi.micro.Shiz_1.0, from my details sheet.

kawigi.micro.Shiz_1.0 28.0 2 21-5-2004:1:25 77.1 -49.0 
Similar thing happened a couple of versions ago with another robot. I've tried to reproduce this, but can't, and it is with 2 matches! I always get something like:
1st: pulsar.PulsarMax 0.2.12	4272
2nd: kawigi.micro.Shiz 1.0	227
Can somone else reproduce this behaviour? Else I'm inclined to believe there is a strange bug somewhere other than my bot.

Can clients report bad data? For example if run with java 1.5 beta 1 (doesn't work very well, memory leak with the roborumble client it seems and I was running that one on one of my machines when it happened last time). Or if the upload of results are not working, I've seen some wiki/tomcat errors on the site today for example. Just throwing out ideas. I've no idea how much such a single result would change the score, guess not that much? But there could be more results like that for others as well? Hmm I've seen some of my roborumble clients stop working now and then (process takes 0% cpu) and has to be "ctrl-c:ed" could something like that cause this and is someone else noticing that behaviour rarely too? -- Pulsar

It's unlikely that the client is doing this. Much more likely is that you have a bug. Might be an index out of bounds bug in your distance segment. Shiz is a melee bot and might more often than other be far away from you. Run 1000 35 round battles against Shiz with RoboLeague and you might force the bug to appear. -- PEZ

kawigi.sbf.FloodHT_0.8 0.0 1 22-5-2004:13:12 61.1 -61.1
I'll run that Roboleague match now I guess. But what kind of bug can cause me to not score a single point for 35 rounds? I'm not doing any I/O. Is there someone running the client on java 1.3 perhaps? I'm most likely using stuff from java 1.4. -- Pulsar

An index out of range bug can cause that. Though you might be right about the client being run in 1.3 would also cause something like that. But then you should see many results like that, shouldn't you? -- PEZ

True, I'll find it sooner or later, just annoying for now :) -- Pulsar

I order to avoid the problems with "crashed" bots, the server doesn't upload any results that show a 0 score for some of the bots. So probably it it an index that gets out of range. -- Albert

Ok but doesn't the above indicate that I got 0 in that game (it was from the details sheet)? Well I guess it could be rounded to zero. I'm still looking for the problem to occur when running roboleague matches, that's why I'm even bothering to discuss it. On the other hand, I'm not getting that many roboleague executed, they also get stuck doing nothing (CPU 0%) after a random time. Setting it to run 1000 35 rounds matches against FloodHT for example. Different computers (all with various 1.4.2_x JVMs) give me the same thing with the roborumble-client at times, not limited to matches with my robot either. -- Pulsar

Those computers don't happen to be Intel P4s with hyper threading, do they? -- PEZ

One of them is, but I set the affinity to one of the virtual CPUs usually. Hmm but I didn't do it with roboleague at least. I'll check that more. Thanks! Hmm but I am (or was at least) fairly convinced that it happened on at least one machine without HT (a laptop). -- Pulsar

Ohh found the windows xp page now... Sorry, should have searched more. I'll play with that. -- Pulsar

So that means results such as these doesn't count? Bah :-)

pulsar.PulsarMax 0.2.17,tobe.mini.Charon 0.9
RESULT = pulsar.PulsarMax 0.2.17 wins 4164 to 0
-- Pulsar


Why is the RoboRumble progressing so slowly today? I added my new version of Locke and started my RR client 15 hours ago, and still I'm not at 500 battles. I'm not complaining here, just curious about how stuff works. Could it have to do with Prioritized Battles? Or maybe not everyone is running a client? --Vic

I think it's because of the large number of updated bots. We had 5 or more updates yesterday, that's over 2500 "priority" battles. Also, my client crashed (I leave it running every night), so there was at least one less client running... -- ABC

One less client should definitely make a difference. But could it also be the way that RoboRumble prioritizes the matches? I seem to observe that of all new bots with less than 500 battles the one with the least number of battles gets priority? In that case I can see how Locke is progressing so slowly: I updated late last night. This morning a few others also updated their bots. So Locke gets stuck at around 300 while the later updated bots catch up. Does it work something like that?

While writing the above paragraph I see Pugilist, updated this morning I think, storming past Locke in terms of battles fought. So it does not seem to work like I describe above. I can't figure out why that happens..... Again, I'm not complaining here, I'm just trying to find out how it works. --Vic

Pugilist might have "stormed" past Locke because I sometimes run my client without downloading bots. Then my client doesn't "see" Locke. Or it could be something completely else. I observed my client today running and I think 95% of the battles where with PulsarMax involved. Strange indeed.gh- or you to get an answer on how strong it is. I have been figuring that maybe we should add a little feature to the client where you can register a "main" package it should look for and prioritize. Like I would set it to "pez" and my client should try make half of the priority battles it runs involve a bot from that package. That would also encourage active roborumblers to run clients. -- PEZ

I think that option would be a good idea. Not exclusively running your bots, but prioritized nonetheless. That way people with crashed clients or with frequently crashing computers (like I ha server will start running the missing pairings of that bot. Maybe those battles have higher priority than the first 500. -- ABC

Ah, that explains the P matches that are still running. --Vic

The P matches are explained by the fact that it didn't reach 500 battles in the mini rumble yet. :) -- ABC

Ah, yes of course. Damn mini's.... ;-)...jk.... --Vic

Don't hate minis. =) Seriously, I think the client won't start running mini priority battles until there are no mega priority battles to run. Check the roborumble.txt file for how to switch of downloads. I fully understand your frustration with your bot not getting its 600+ battles fast enough for you to get an answer on how strong it is. I have been figuring that maybe we should add a little feature to the client where you can register a "main" package it should look for and prioritize. Like I would set it to "pez" and my client should try make half of the priority battles it runs involve a bot from that package. That would also encourage active roborumblers to run clients. -- PEZ

I think that option would be a good idea. Not exclusively running your bots, but prioritized nonetheless. That way people with crashed clients or with frequently crashing computers (like I had a few months ago) will not be left standing in the cold. And as a MegaBotOnlyAuthor? I will probably never like MiniBots that thrash my MegaBots. Well...there maybe a little bit of envy involved here. These MiniBots prove that it is not the size that matters, it's what you do with it ;-) --Vic

Indeed. Though what I think they prove is that mega Robocoding has not yet evolved enough to really leave the minis behind. Who would have thought during the reign of DT 1.61 that it would once be easily beaten by a micro in head to head battle? -- PEZ

And I'll look how easy it would be for me to update the client with this feature. Stay tuned! -- PEZ

OK. Now you might see CassiusClay battle count zoom past your recently released Locke. That's because I'm trying if I have found the right spot in the client code to prioritice a given bot "main" package. Trying with my own. Selfish! -- PEZ

I'll check it in the morning. If I find that you are right I will start shouting at you, ok? ;-) --Vic

Well, it appears that there will be no shouting today. :-p Locke0.5.1 already has 700 battles under its belt :-) Did the prioritizing hack work? --Vic

It wasn't as many updated bots this time I guess. Yes, the prioritizing hack seemed to work. Though I must tune it, becuase now i think it was about 85% "pez.*" battles. Maybe I can get a client update out by tomorrow night. -- PEZ


In one of about 20 uploades i get this:
java.io.IOException: Server returned HTTP response code: 500 for URL: http://rum
ble.robowiki.net/servlet/UploadedResults
Unable to upload results roborumble,35,800x600,Deathcon,1086081613370,SERVER pul
sar.PulsarMax 0.2.31,4414,1982,34 labg.Cataclysm 1.95,375,306,1
Error code 500 was internal error if i am right. Am i the only one getting this or is it a general problem? --deathcon

It happens when the server is busy writing or reading bot rating files. Generally the results will get uploaded next client iteration. -- PEZ


FYI. My little patch to make it possible to get the client to prioritize a particular "main" bot package seems to work. I'll make the updated class available tonight if I remember to. I implemented it in such a way that the client tries a few times to get a pairing with a prio package bot involved. This means that the ratio of battles run with this prio package bot will vary depending on how many newly updated bots there are. I think it strikes a good balance between public and self service. =) -- PEZ

Sounds good. Let's try it :-) --Vic

Great. When you release it, I'w release a new complete client which includes the chanbges. -- Albert

Well, I think I might not have gotten it to work yet. I think that maybe I prioritize pez.* bots even when there are no bots in priority mode. Albert, here's the diff:

diff old\PrepareBattles.java new\PrepareBattles.java
32c32
<
---
>       private String prioritypackage;
47a48
>               prioritypackage = parameters.getProperty("PRIORITYPACKAGE","");
219a221
>               int c = 0;
221c223
<               while (  ((String) list1.get(bot1)).equals((String) list2.get(bot2))   ) {
---
>               while (  ((String) list1.get(bot1)).equals((String) list2.get(bot2)) || c++ < 3 && !((String)list1.get(bot1)).startsWith(prioritypackage)) {

You see if this should be enough or if I need to check for this case somewhere else too?

-- PEZ

The problem is probably that when there are no bots in the priority list, then it uses the full list, but then it keeps selecting the priorized package ones.

A possible solution could be not to make the changes there, but just add the priority package bots several times into the priorityall/mini/micro/nano lists. It would increase the probability to choose them. -- Albert

Good idea. That way we can control the ratio much better too. I'll try it. -- PEZ


Anybody have a clue for that?:

F:\Java\robocode\robots>java -Dsun.io.useCanonCaches=false -Xmx256M -cp .;../rob
ocode.jar;../codesize.jar; roborumble.RoboRumbleAtHome ./roborumble/roborumble.t
xt
Iteration number 0
Downloading participants list ...
Downloading missing bots ...
java.util.zip.ZipException: error in opening zip file
Downloaded file is wrong or corrupted:cf.proto.Shiva_1.02.jar
Could not download bot cf.proto.Shiva_1.02.jar
java.util.zip.ZipException: error in opening zip file
Downloaded file is wrong or corrupted:wiki.BoxingVirus_1.0.jar

Could not download bot wiki.BoxingVirus_1.0.jar
Ignoring cf.proto.Shiva_1.02.jar: .\cf.proto.Shiva_1.02.jar (O sistema nŇo pode
encontrar o arquivo especificado)
Ignoring cf.proto.Shiva_1.02.jar: .\cf.proto.Shiva_1.02.jar (O sistema nŇo pode
encontrar o arquivo especificado)
Ignoring wiki.BoxingVirus_1.0.jar: .\wiki.BoxingVirus_1.0.jar (O sistema nŇo pod
e encontrar o arquivo especificado)
Ignoring wiki.BoxingVirus_1.0.jar: .\wiki.BoxingVirus_1.0.jar (O sistema nŇo pod
e encontrar o arquivo especificado)
Downloading rating files ...
Preparing battles list ... Using smart battles is true
Executing battles ...
Fighting battle 0 ... axeBots.SilverSurfer 2.27.5,pez.micro.Aristocles 0.3.7
RESULT = axeBots.SilverSurfer 2.27.5 wins 3330 to 2058
("O sistema nŇo pode encontrar o arquivo especificado" == "The system could not find the specified file") It happens allways that some bot uses an alternate dowload location at RoboRumble/Participants. -- Axe

Oh thanks for reporting. These two bots are both on a server of mine. I did this because the repository was down for a while and because it is really handy. But i can upload these bots to the repository, too. Can u download the files manually be typing in the url http://www.mycgiserver.com/~deathcon/cf.proto.Shiva_1.02.jar in your browser? --deathcon

The problem isn´t in your bots, i assure u that. This always happens when somebody uses an alternate location. It happened with ABC´s bots & even my own bots. Apparently the problem is here (probably between my chair & keyboard:), but i really don´t know what is, hopefully someone have the answer... -- Axe


Now there's something really fishy going on. My current CC (1.5.2.3) was at 2025 something with all pairings fought and 750+ battles. Then all of a sudden it has 800 something battles and 2007 points. Pugilist dropped almost 10 points at the same time. Albert, does this extract from the battles log look right to you?
35,800x600,ph,1086967583251,japs.Sjonniebot 0.9.1,10715,3384,1,abc.tron3.Shadow 3.07,20849,5591,15
35,800x600,ph,1086967583251,japs.Sjonniebot 0.9.1,10715,3384,1,pe.SandboxLump 1.52,18990,5726,10
35,800x600,ph,1086967583251,japs.Sjonniebot 0.9.1,10715,3384,1,sm.Devil 7.3,16590,4350,5
35,800x600,ph,1086967583251,japs.Sjonniebot 0.9.1,10715,3384,1,cx.mini.BlackSwans 0.60,9966,2718,1
35,800x600,ph,1086967583252,japs.Sjonniebot 0.9.1,10715,3384,1,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583252,japs.Sjonniebot 0.9.1,10715,3384,1,ahf.r2d2.R2d2 0.86,9085,2047,1
35,800x600,ph,1086967583252,japs.Sjonniebot 0.9.1,10715,3384,1,cbot.cbot.CBot 0.8,8719,2103,0
35,800x600,ph,1086967583252,japs.Sjonniebot 0.9.1,10715,3384,1,gu.MicroScoob 1.3,7860,1785,0
35,800x600,ph,1086967583253,japs.Sjonniebot 0.9.1,10715,3384,1,hirataatsushi.Neo 1.6,6750,2331,0
35,800x600,ph,1086967583253,cx.mini.BlackSwans 0.60,9966,2718,1,abc.tron3.Shadow 3.07,20849,5591,15
35,800x600,ph,1086967583253,cx.mini.BlackSwans 0.60,9966,2718,1,pe.SandboxLump 1.52,18990,5726,10
35,800x600,ph,1086967583253,cx.mini.BlackSwans 0.60,9966,2718,1,sm.Devil 7.3,16590,4350,5
35,800x600,ph,1086967583254,cx.mini.BlackSwans 0.60,9966,2718,1,japs.Sjonniebot 0.9.1,10715,3384,1

35,800x600,ph,1086967583254,cx.mini.BlackSwans 0.60,9966,2718,1,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583254,cx.mini.BlackSwans 0.60,9966,2718,1,ahf.r2d2.R2d2 0.86,9085,2047,1
35,800x600,ph,1086967583255,cx.mini.BlackSwans 0.60,9966,2718,1,cbot.cbot.CBot 0.8,8719,2103,0
35,800x600,ph,1086967583255,cx.mini.BlackSwans 0.60,9966,2718,1,gu.MicroScoob 1.3,7860,1785,0
35,800x600,ph,1086967583255,cx.mini.BlackSwans 0.60,9966,2718,1,hirataatsushi.Neo 1.6,6750,2331,0
35,800x600,ph,1086967583255,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2,abc.tron3.Shadow 3.07,20849,5591,15
35,800x600,ph,1086967583256,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2,pe.SandboxLump 1.52,18990,5726,10
35,800x600,ph,1086967583256,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2,sm.Devil 7.3,16590,4350,5
35,2Cph,1086967583259,ahf.r2d2.R2d2 0.86,9085,2047,1,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583260,ahf.r2d2.R2d2 0.86,9085,2047,1,cbot.cbot.CBot 0.8,8719,2103,0
35,800x600,ph,1086967583260,ahf.r2d2.R2d2 0.86,9085,2047,1,gu.MicroScoob 1.3,7860,1785,0
35,2d2.R2d2 0.86,9085,2047,1
35,800x600,ph,1086967583257,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2,cbot.cbot.CBot 0.8,8719,2103,0
35,800x600,ph,1086967583258,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2,gu.MicroScoob 1.3,7860,1785,0
35,800x600,ph,1086967583258,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2,hirataatsushi.Neo 1.6,6750,2331,0
35,800x600,ph,1086967583258,ahf.r2d2.R2d2 0.86,9085,2047,1,abc.tron3.Shadow 3.07,20849,5591,15
35,800x600,ph,1086967583258,ahf.r2d2.R2d2 0.86,9085,2047,1,pe.SandboxLump 1.52,18990,5726,10
35,800x600,ph,1086967583259,ahf.r2d2.R2d2 0.86,9085,2047,1,sm.Devil 7.3,16590,4350,5
35,800x600,ph,1086967583259,ahf.r2d2.R2d2 0.86,9085,2047,1,japs.Sjonniebot 0.9.1,10715,3384,1
35,800x600,ph,1086967583259,ahf.r2d2.R2d2 0.86,9085,2047,1,cx.mini.BlackSwans 0.60,9966,2718,1
35,800x600,ph,1086967583259,ahf.r2d2.R2d2 0.86,9085,2047,1,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583260,ahf.r2d2.R2d2 0.86,9085,2047,1,cbot.cbot.CBot 0.8,8719,2103,0
35,800x600,ph,1086967583260,ahf.r2d2.R2d2 0.86,9085,2047,1,gu.MicroScoob 1.3,7860,1785,0
35,800x600,ph,1086967583260,ahf.r2d2.R2d2 0.86,9085,2047,1,hirataatsushi.Neo 1.6,6750,2331,0
35,800x600,ph,1086967583260,cbot.cbot.CBot 0.8,8719,2103,0,abc.tron3.Shadow 3.07,20849,5591,15
35,800x600,ph,1086967583261,cbot.cbot.CBot 0.8,8719,2103,0,pe.SandboxLump 1.52,18990,5726,10

35,800x600,ph,1086967583261,cbot.cbot.CBot 0.8,8719,2103,0,sm.Devil 7.3,16590,4350,5
35,800x600,ph,1086967583261,cbot.cbot.CBot 0.8,8719,2103,0,japs.Sjonniebot 0.9.1,10715,3384,1
35,800x600,ph,1086967583262,cbot.cbot.CBot 0.8,8719,2103,0,cx.mini.BlackSwans 0.60,9966,2718,1
35,800x600,ph,1086967583262,cbot.cbot.CBot 0.8,8719,2103,0,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583262,cbot.cbot.CBot 0.8,8719,2103,0,ahf.r2d2.R2d2 0.86,9085,2047,1

35,800x600,ph,1086967583262,cbot.cbot.CBot 0.8,8719,2103%2!! It looks like someone faking the results, or it is a really unexplicable bug. -- [[Albert]]

The results are tagged to come from [[Ph]]'s client. He just released a [[Teams]] ready bot ([[Musketeer]]) could it be something to do with a client running Teams rumble that ha
35,800x600,ph,10869675e.SandboxLump 1.52,18990,5726,10
35,800x600,ph,1086967583263,gu.MicroScoob 1.3,7860,1785,0,sm.Devil 7.3,16590,4350,5
35,800x600,ph,1086967583264,gu.MicroScoob 1.3,7860,1785,0,japs.Sjonniebot 0.9.1,10715,3384,1
35,800x600,ph,1086967583264,gu.MicroScoob 1.3,7860,1785,0,cx.mini.BlackSwans 0.60,9966,2718,1
35,800x600,ph,1086967583264,gu.MicroScoob 1.3,7860,1785,0,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583265,gu.MicroScoob 1.3,7860,1785,0,ahf.r2d2.R2d2 0.86,9085,2047,1
35,800x600,ph,1086967583265,gu.MicroScoob 1.3,7860,1785,0,cbot.cbot.CBot 0.8,8719,2103,0
35,8ts for every battle!!! 3rd, the bots are in the wrong order (the winner always comes first, because this is the way Robocode orders the bots) because CC loses in points (it is the first number after the name of the bot) bot appears as the winner!!! It looks like someone faking the results, or it is a really unexplicable bug. -- [[Albert]]

The results are tagged to come from [[Ph]]'s client. He just released a [[Teams]] ready bot ([[Musketeer]]) could it be something to do with a client running Teams rumble that ha
35,800x600,ph,1086967583267,hirataatsushi.Neo 1.6,6750,2331,0,cx.mini.BlackSwans 0.60,9966,2718,1
35,800x600,ph,1086967583267,hirataatsushi.Neo 1.6,6750,2331,0,pez.rumble.CassiusClay 1.5.2.3,9328,2165,2
35,800x600,ph,1086967583267,hirataatsushi.Neo 1.6,6750,2331,0,ahf.r2d2.R2d2 0.86,9085,2047,1
35,800x600,ph,1086967583267,hirataatsushi.Neo 1.6,6750,2331,0,cbot.cbot.CBot 0.8,8719,2103,0
Somehow I think it is not as it should.

-- PEZ

-- PEZ

Seems strange to me. 1rst, the time stamp (which is in milliseconds I guess) shows 3 battles fought in a single tick!!! 2nd, it's not probable that CC gets the same amout of points for every battle!!! 3rd, the bots are in the wrong order (the winner always comes first, because this is the way Robocode orders the bots) because CC loses in points (it is the first number after the name of the bot) bot appears as the winner!!! It looks like someone faking the results, or it is a really unexplicable bug. -- Albert

The results are tagged to come from Ph's client. He just released a Teams ready bot (Musketeer) could it be something to do with a client running Teams rumble that has gone really wrong? -- PEZ

I think this may be useful for you: I was running RoboRumble for some amount of time, and, when I released Musketeer (today), I started running MeleeRumble?. I didn't even touch TeamRumble?. Yes, Musketeer is team-ready. But it uses only isTeammate function, so I don't think Musketeer causes problems. Maybe my client is misconfigured? I will soon post here my configuration files.--Ph

Well, I never thought Musketeer caused the problem. But I thought anyone releasing a Teams aware bot might want to run their client in Teams mode. Not that you did that, but anyway. =) If your client has uploaded melee results to the 1v1 rumble that fully explains why both CC and Pugilist lost rating points. They are complete losers on a melee arena. -- PEZ

I have also noticed, that my Java Virtual Machine crashed (segmentation fault) while executing RR@H client, One-on-oneRumble. So it was not functioning properly before the crash, and all results etc. could be wrong. I don't think my client uploaded melee results as 1v1. I checked my configuration and think it's correct (it is default configuration, so should be OK). Is that possible to incorrectly upload results? Could the crash cause that? I am running Linux and JRE v. 1.4. --Ph

I doubt the crash could cause the client to make up results like those above. The results above looks like melee results uploading I think. Maybe Albert can confirm that? That crash maybe confused your client to upload melee results to the wrong rumble... -- PEZ

Yeah, it looks like melee results, but with wrong board size. For melee it should be 1000x1000. It also cannot be 1v1 result, because in 1v1 battles list is different. It's surely result of the crash, so now I try to find out what caused this crash. --Ph

Did you change roborumble settings file to run melee and then executed RR@H using "roborumble.bat"? It would explain what happened. The way to run melee (or team) battles is to use meleerumble.bat (or teamrumble.bat), which have the right settings to tell the server that they are not one-on-one. -- Albert

When these strange things happend, I executed roborumble.sh with wrong configuration (see bottom of my - Ph page, where I explain what was wrong). Now I have correct config and run right command, and my RR@H client behaves normally, as it should. --Ph

Albert what do we do about the screwed up ratings we have now got? I have updated the two bots I care for the most at the moment. But there are probably many bots with quite offline ratings now. Is there a way for me to roll back the ratings and reaply the battles log without the bad data? Or maybe reaply the battles log like 100 times or so to completely clean out the impact of the bad data. -- PEZ

If we reaply the log file without the wrong entries it should correct the ratings. 10-20 times should be enough (but then we need a program to upload it). If you have a back up, it would be a good idea to restore the old data files to fix the problem (of course we will lose some battles, but it should catch up quick enough). Another fix is to edit the data files manually (se Ph page). -- Albert


Just a thought, would it be possible to have a list of running clients? We could say that any client that has uploaded results in the last 30 minutes is active. Maybe we could add a column "# matches per timeunit". I'd be willing to write the X-SLT, if I can have access to the relevant XML data. --Vic


A question: is it possible to configure RoboRumble@home to work behind a firewal so i can RoboRumble@work ?? I get a 'connection timed out' exception when it tries to retrieve the participants list. thanks --Loki

I think you don't need to change RR@H client's configuration, but your firewall configuration. Most probably your firewall blocks RR@H's attempt to connect. Try adding RR@H to your firewall's applications allowed list (or something like that). --Ph

I am afraid i can't do that :( I am trying to run RoboRumble on my company laptop as it is idle some 75% of it's time. Ofcourse I can't configure my company's firewall, so all i can do is (somewhere) set the proxyserver and portnumber as in the network options of my web-browser. --Loki

I understand now. AFAIK you can't do that by editing your configuration files. But you can try editing your RR client's code. I think all you need is to paste code below into your RoboRumbleAtHome?.java void main() and compile.

System.setProperty( "proxySet", "true" );
System.setProperty( "http.proxyHost", "xxx" );
System.setProperty( "http.proxyPort", "xxx" );

System.setProperty("http.proxyUser", "xxx");
System.setProperty("http.proxyPassword", "xxx");

Source: [www.javaworld.com/javaworld/javatips/jw-javatip42.html] --Ph

thanks Ph, i will try this as soon as possible! And of course publish at this page if it worked --Loki

java -DproxySet=true -DproxyHost=xx-proxy -DproxyPort=1234

If it is socks settings you can set them as well in a similar way. Also remember that you don't need to change the java source for this. You can specify this on the command line instead.(-D) -- Pulsar


Finnally running the meleeRumble! But ... First i get the following messages:
Downloading missing bots ...
Downloading ...abc.tron3.Shadow 3.12
Downloaded file is wrong or corrupted:abc.tron3.Shadow_3.12.jar
Could not download bot abc.tron3.Shadow_3.12.jar
Downloading ...abc.tron3.Tron 3.03
Downloaded file is wrong or corrupted:abc.tron3.Tron_3.03.jar
Could not download bot abc.tron3.Tron_3.03.jar
Downloading ...cx.BlestPain 1.40
Downloaded file is wrong or corrupted:cx.BlestPain_1.40.jar
Could not download bot cx.BlestPain_1.40.jar
Downloading ...fnc.Bandit 4.0.0
Not able to read properties
Downloaded file is wrong or corrupted:fnc.Bandit_4.0.0.jar
Could not download bot fnc.Bandit_4.0.0.jar
Downloading ...kawigi.robot.Girl 1.0
Downloaded file is wrong or corrupted:kawigi.robot.Girl_1.0.jar
Could not download bot kawigi.robot.Girl_1.0.jar
Downloading ...rz.Aleph 0.2
Downloaded file is wrong or corrupted:rz.Aleph_0.2.jar
Could not download bot rz.Aleph_0.2.jar
What causes this? A wrong id in the RoboRumble/MeleeParticipants-list? If yes, then should these entries be removed?

Second, i see that the latest release of miniFenrir is fighting a battle:

Fighting battle 0 ... bvh.mini.Fenrir 0.39,ratosh.Wesco 1.4,myl.nano.KomoriNinja
 1.1,pe.SandboxLump 1.52,ahf.NanoAndrew .4,dummy.micro.Sparrow 2.5,myl.nano.Grav
iton 1.10,wiki.CoriantumrWithDMMGun 1.02,kawigi.sbf.FloodHT 0.8,dsw.StaticD 1.0
RESULT = pe.SandboxLump 1.52 wins, wiki.CoriantumrWithDMMGun 1.02 is second.
but the results that are uploaded are for bvh.mini.Fenrir 0.36. Next i get page after page of messages like
OK. bvh.mini.Fenrir 0.36 vs. kawigi.mini.Coriantumr 1.1 received
OK. bvh.mini.Fenrir 0.36 vs. kawigi.mini.Coriantumr 1.1 received
OK. bvh.mini.Fenrir 0.36 vs. kawigi.micro.Shiz 1.0 received
OK. bvh.mini.Fenrir 0.36 vs. kawigi.micro.Shiz 1.0 received
OK. bvh.mini.Fenrir 0.36 vs. shinh.Entangled 0.3 received
OK. bvh.mini.Fenrir 0.36 vs. kawigi.nano.Lib 1.0 received
OK. bvh.mini.Fenrir 0.36 vs. kawigi.nano.Lib 1.0 received
as you can see there are double entries. The total number of results received is far larger then the expected 10x10 for every combination in the fight. Any ideas? --Loki

I corrected my entries, glad to hear that someone is running some melee battles, I have made some melee improvements to my bots recently. About the double entries, that's because those are mini/micro bots, so the results are also uploaded to the mini rumble. -- ABC

Ehm, i dont know if it was mentioned before, but look at the PL rankings. To me it seems strange that there are bigger numbers than 100 in the total %wins field. Whats up with this ??? --deathcon

It is OK, it's calculated as the sum of bot score / total score for all matches. To find a real % just divide the number by the battles fought and multiply by 100. -- Albert

How come there are so many bots with missing pairings? Even bots which have been unchanged since the start of RR sometimes lack pairings. Chameleon is lacks 3 pairings for instance. This puts the PremierLeague rankings off quite much. -- PEZ


Hi, i have a problem with the following line in the details sheet of Ascendant 0.7.7b:

wiki.nano.RaikoNano_1.1	  0.8	1	13-8-2004:9:35	77.3	-76.5
Obviously Ascendant got only 0.8% of the score, which makes me guess that there are some exceptions involved. Actually Ascendant must have failed almost all rounds of that battle to get such a bad result. I just finished running 50 battles (35 rounds each) and several 1000-rounds battles vs RaikoNano, the worst result was 65% for Ascendant and not a single exception was thrown. I already analysed the changes i made, but i fail to see how they could possibly lead to exceptions. Thats why i need help in debugging.

So please could everyone whose client may have uploaded this result (it must haar: invalid entry size (expected 7147 but got 7142 bytes) Ignoring pulsar.[PulsarMax 0]?.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes) Downloading rating files ... Removing old participants from server ... Preparing battles list ... Using smart battles is true Ignoring pulsar.[PulsarMax 0]?.4.14.jar: invalid entry size (expected 71ce i have absolutely no idea how to track this error. Thanks in advance. --Mue

No data dir here, was running all night/morning... -- ABC

Sorry, same here, 3 computers running it and neither had a data directory for that bot. -- Pulsar

No data directory here either. -- PEZ

Well, thank you all anyway. Too sad that there is no hint on what went wrong. A stacktrace would have been to easy i guess :-/ --Mue

Have you verified that those exceptions reach the data directory? -- PEZ

Yes, i checked that before i wrote the text above. --Mue

Good idea that logging exceptions in the data dir. I'll probably start doing that too. -- PEZ


Anyone but me starting to have strange output from the RR client like this:
Downloading missing bots ...
Ignoring pulsar.PulsarMax_0.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes)
Ignoring pulsar.PulsarMax_0.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes)
Downloading rating files ...
Removing old participants from server ...
Preparing battles list ... Using smart battles is true
Ignoring pulsar.PulsarMax_0.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes)
Ignoring pulsar.PulsarMax_0.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes)
Ignoring pulsar.PulsarMax_0.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes)
Ignoring pulsar.PulsarMax_0.4.14.jar: invalid entry size (expected 7147 but got 7142 bytes)
It's happened to CassiusClay and DarkHallow too (and probably others, that I haven't observed). Whenever the problematic bot is to run the client bails. If it's just me I guess I must go figure, but if this is seen elsewhere we all need to go figure. =) -- PEZ

Doesnt happen here. I've just seen my client running battles for PulserMax? and CassiusClay. --Mue


I get this whenever CassiusClay runs:
Fighting battle 0 ... pulsar.PulsarMax 0.4.17,takeBot.WeavingWiggle 1.1
RESULT = pulsar.PulsarMax 0.4.17 wins 5636 to 363
Fighting battle 1 ... pez.rumble.CassiusClay 1.9.7.16,ch.rhj.rbc.RHJ1 1.0
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
        at java.util.Vector.elementAt(Unknown Source)
        at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.java:52)
        at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTableModel.java:75)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:95)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:94)
Someone else seen it? This mean my client is not able to participate as long as I have an active CassiusClay with a lack of battles...

-- PEZ

OK. So I repackaged CC and this problem dissappeared. If someone else has the problem, delete pez.rumble.[CassiusClay 1]?.9.7.16.jar from your roborumble robots dir and let the client download the jar again. -- PEZ


I just set up RoboRumble@Home on my computer but when I started it and it started to download bots it printed lots of error messages about currupt jar-files. I noticed that all jar files hade the same size (393 bytes) and only contained an html error message. After much investigation I found that my firewall was blocking the referer header and the repository didn't like that. Now everything works as it should. I just want to share my experience so other people don't have to go though the same problems. So, I say it again, remember to set you firewall to allow referer for www.robocoderepository.com! -- Strider
I'm running it for the first time now, and noticed that it takes less than half the CPU time available on average, sometimes even 15% for a few seconds. It has only run BeeRRGC vs. many others yet. -- Jonathan

Robocode usually demands lots of CPU, some bots (like my SilverSurfer, Shadow, most of Iiley´s and others) known as SlowBots demands even more. This, i guess, will depend on the machine & SO u have. Nothing to do, i think...
About running only BeeRRGC, the RR@Home assures that any bot with less than 500 battles will have it´s pairings priorized (if u check the scores table u will probably find out that BeeRRGC is a new release, and have < 500 battles). -- Axe

I might be wrong, but it sounds like Jonathan is wondering why the client doesn't get more of the CPU. It's a bit strange I think too. At least on WindowsXP it seems the OS prioritizes the idle process very much. =) -- PEZ

With such short battles a lot of time is probably spent doing hard disk accesses for classloading between battles. --David Alves

Short matches? Running Cigaret or Shadow 35 rounds against anything takes forever. Even then the idle process gets 60% on my machine. Strange! -- PEZ


C:\RobocodeAtHome\robots>java -Dsun.io.useCanonCaches=false -Xmx256M -cp .;../robocode.jar;../codesize.jar; roborumble.RoboRumbleAtHome ./roborumble/roborumble.txt
Iteration number 0
Downloading participants list ...

Downloading missing bots ...
Downloading ...davidalves.net.YALT 1.6
Downloaded davidalves.net.YALT 1.6 into ./davidalves.net.YALT_1.6.jar
Downloading ...dft.Cyanide 1.35
Downloaded dft.Cyanide 1.35 into ./dft.Cyanide_1.35.jar
Downloading ...pez.rumble.CassiusClay WT1.1
Downloaded pez.rumble.CassiusClay WT1.1 into ./pez.rumble.CassiusClay_WT1.1.jar
Downloading ...ph.mini.Archer 0.6.4
Downloaded ph.mini.Archer 0.6.4 into ./ph.mini.Archer_0.6.4.jar

<problem>

Battles input file not found ... Aborting
java.lang.StringIndexOutOfBoundsException: String index out of range: -1

</problem>

Downloading rating files ...
Removing old participants from server ...
Preparing battles list ... Using smart battles is true
Prioritary battles file not found ...
Executing battles ...
Fighting battle 0 ... davidalves.net.YALT 1.6,wiki.nano.RaikoNano 1.1
RESULT = davidalves.net.YALT 1.6 wins 3179 to 2331
Fighting battle 1 ... pez.rumble.CassiusClay WT1.1,jam.micro.RaikoMicro 1.44
--David Alves


Is there any way to run RoboRumble in headless mode? I have a dedicated Linux server box (no X windows) which just sits around all day doing not much, and I could put that hardware to good use by running RoboRumble, but the Robocode classes try to pop up the results window, giving me 'Exception in thread "Application Thread" java.lang.InternalError?: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.', which is to be expected when there's no X server running, but also means that I can't run RoboRumble@Home. I've tried using -Djava.awt.headless=true to start the JVM, but it won't work either. Any way around it? --Nathanael

Not yet. --David Alves You can start the X server on another machine and log in from that one and start the RR client. You can't log off with the X server machine of course, but it's the best I can think of. -- PEZ


Got this while trying to access melee ratings
java.lang.NullPointerException
	at Rankings.doPost(Rankings.java:54)
	at Rankings.doGet(Rankings.java:20)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)




	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1122)
	at java.lang.Thread.run(Thread.java:595)
--David Alves

Thanks for telling. I guess too many files are damaged. Let's see if I can bring back data from two days back instead. I'll take the RR@H servlets down meanwhile. -- PEZ

Bad news. The backups are invalid. Have been since a while it seems. In the worst case we'll need to start the rankings all over again. But I'll see if I can investigate the files some and see if we can salvage most of it... Once we sort this out we'll just have to set up a working mirroring solution of some sort. -- PEZ

I always got the error,when fighting with bvh.mini.Wodan_0.33 995:

Fighting battle 9 ... sgp.MadHatter 4.13,bvh.mini.Wodan_0.33 995
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
        at java.util.Vector.elementAt(Unknown Source)
        at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.java:52)
        at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTableModel.java:75)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:95)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:94)
Is it version's problem, did some of you had got this? -- iiley

iiley, search this page for "1 >= 1". This problem has occured before. Delete bvh.mini.Wodan_0.33_995.jar from your roborumble robots dir and let the client download the jar again. B.t.w. i guess it should be bvh.mini.Wodan_0.33_995 !? --Loki

I get it on both my machines. Both of which have totally fresh robots and .robotcache directories. It's something wrong with that bot jar... I removed it once and reinstalled it again, but now it's time to remove it and Loki can have a look at it before we reinstall it. -- PEZ

ok. I will take a look at this bot --Loki

Ok thanx ;] -- iiley

B.t.w. this problem has been mentioned before with pez.rumble.CassiusClay 1.9.7.16,ch.rhj.rbc.RHJ1 1.0 So is it a problem with the bot or with the RRClient? --Loki

I don't know. But at the moment it's very focused on that bot. Maybe sometimes the client doesn't like the version number or something... -- PEZ

Something is strange with my client now anyway:

Fighting battle 0 ... pez.rumble.CassiusClay 1.9.9.38,abc.tron3.Shadow 3.37
RESULT = pez.rumble.CassiusClay 1.9.9.38 wins 2353 to 630
As nice at it might be to see that result, it just must be false. CC loses big against ad.last.Bottom in the same session...

-- PEZ

Ehmm it's late here. I found the error. I had accidentily set the battle field to 800x00. Now at least I know how to beat Shadow. =) -- PEZ


I get this:
D:\roborumble\robots>java -Xmx256M -cp .;../robocode.jar;../codesize.jar; roboru
mble.RoboRumbleAtHome ./roborumble/roborumble.txt
Iteration number 0
Downloading participants list ...
Downloading missing bots ...
Battles input file not found ... Aborting
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
Downloading rating files ...
Unable to ratings for roborumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?ve
rsion=1&game=roborumble
Unable to ratings for minirumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?ve
rsion=1&game=minirumble
Unable to ratings for microrumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?ve
rsion=1&game=microrumble
Unable to ratings for nanorumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?ve
rsion=1&game=nanorumble
Preparing battles list ... Using smart battles is false
Executing battles ...
Uloading results ...
Updating number of battles fought ...
Iteration number 1
Preparing battles list ... Using smart battles is true
Executing battles ...
Uloading results ...
Updating number of battles fought ...
Iteration number 2
Know what to do? -- trab

You have to open the roborumble.txt file and change all the "rumble.robowiki.net/servlet/" references to "pezius.com/rumble/servlet/", except for the PARTICIPANTSURL entry that becomes "http://robowiki.net/cgi-bin/robowiki?RoboRumble/Participants". -- ABC

Yes, I think that the config file posted on RoboRumble/TemporaryServerUp should work. Just change "PEZ" to "trab". -- PEZ

Somebody has an idea why every version of CassiusClay always starts at 1600 ranking. Most bots start at the ranking of the previous version, as it should be... -- PEZ

No idea, but it happened to some of Shadow's versions too. -- ABC

I may be wrong (the code is very hard to read) but I don't think bots are assigned the rating of the previous version anywhere. Here's the relevant code:

	Properties bot1 = getBotData(bot1name, game, fname);
	if (bot1 == null) { out.println("ERROR reading bot1 properties file"); return; }
	int battles1 = 0; try { battles1 = Integer.parseInt(bot1.getProperty("battles","0"));  } catch (Exception e) {};
	double rating1 = Double.parseDouble(bot1.getProperty("rating","1600")); if (Double.isNaN(rating1)) rating1 = 1600;
	double real1 = Double.parseDouble(fscore) / (Double.parseDouble(fscore)+Double.parseDouble(sscore)); if (Double.isNaN(real1) || real1 == 0.0 || real1 == 1.0) return;
	String e1 = bot1.getProperty(bot2name,Double.toString(real1)+",0,0"); String[] ep1 = e1.split(",");
	double wins1 = Double.parseDouble(ep1[0]); if (Double.isNaN(wins1) || wins1 == 0) wins1 = real1; 
	 int benemy1 = 0; try { benemy1 = Integer.parseInt(ep1[1]); } catch (Exception e) { }
--David Alves

Yeah, I know that part of the code is dense. I think the part where it looks for an old version must be somehwere else. Because it does happen for mostbots. Right now Ascendant 0.9.5c correctly started in 2060+ space, it has 2068 with 31 battles. While CassiusClay 1.9.9.44 started from the middle again and has 1850 with a crazy momentum. -- PEZ

All of a sudden 100 bots are missing from the ranking table. I checked the ratings-file and it lacks 100 bots too. I have absolutely no idea what has happened. But hopefully the table will rebuild itself as pairings for the missing bots are uploaded. Hopefully... -- PEZ

It happened to me the other day when I set up a new RR client that I got the participants url wrong and the client started removing everybody. I stopped it after around 10 removals and fixed it, the missing bots reapeared as soon as they got to fight again. Maybe it happened to someone else today, there should be a check in the client for a missing (or empty) participants file. -- ABC

Thanks for this info. I actually thought about this protection the other day. But I worried about somebody deleting bots on the participants page on purpose. In any case we should think about a way to deal with this. The ranking table is rebuilding as we speak so it's no catastrophy, but still nothing I would want to happen any often... -- PEZ

Here's "proof" that some bots get to keep the ranking of the previous version and some bots don't. http://pezius.com/robocode/RankingsSnapShot.html SilverSurfer has a negative momentum and 2034 points after 2 battles and CassiusClay has 1653 with 2 battles faught (and a huge positive momentum naturally). There's something rotten in the state of Denmark! -- PEZ

That is much more interesting (more rare) than those 290+ snapshots... One of the reasons of negative momentum of SS can be that it is beating CC by 61.3%, but since CC is rated 1653, SS´s expected % against CC is 79.1%! So, actually SS is underperforming by -17.7%... Funny :) -- Axe

Man! Your -17.7% is dragging me down.. If u wanna sink, please go alone, dont grab my feet!! :) -- Axe

When I start roborumble.bat I get this output:

Downloading participants list ...
Downloading missing bots ...
Downloading rating files ...
Removing old participants from server ...
Preparing battles list ... Using smart battles is true
Prioritary battles file not found ...
Executing battles ...
Exception in thread "main" java.lang.RuntimeException: File not found: C:\Progra
m%20Files\Robocode\robots
        at roborumble.battlesengine.RobocodeEngineAtHome.<init>(RobocodeEngineAt
Home.java:42)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:
50)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:94)

C:\Program Files\Robocode\robots>goto run
As you might see, the /roborumble/RoboRumbleAtHome?.class is running, but when it starts executing battles the battlesengine.RobocodeEngineAtHome?.class is not found. The .class file is in the battlesengine directory, so I can find it manually (it's there!). I've checked any solutions I can come up with, but I can't figure it out. It's probably something real easy too... :/ -- Toz

Actually it looks like the file not found is the robots directory. Strange... -- PEZ

Sure about that? For me it seems that if it's working directory is the robots directory, then the .class file it is trying to run must be inside the roborumble\battlesengine directory -- Toz

Reading the source code for RobocodeEngineAtHome? now, and I think I see what you mean. But still... What to do? I want to run roborumble all the time and be the number one rumblerunner! :P -- Toz

Can you paste your roborumble.bat file here maybe? And are you running it from the robocode dir? -- PEZ

.bat file:

cd robots
:run
java -Dsun.io.useCanonCaches=false -Xmx256M -cp .;../robocode.jar;../codesize.jar; roborumble.RoboRumbleAtHome ./roborumble/roborumble.txt 
goto run

And yes, I am. :) -- Toz

Maybe if you try placing the robocode directory somewhere in your path where you don't have spaces in the parent directories? It shouldn't matter I guess, but that %20 in the error message still is a bit funny. -- PEZ

Hehe, I saw you changed back my edit on the RoboRumble/Participants list :) Now I can't download CassiusClay. Is it ok if I change it back, so I can get it? -- Toz

Grab it here: http://pezius.com/robocode/robots/pez.rumble.CassiusClay_1.9.9.83.jar -- PEZ

It seems to be working now, thanks! However, it seems that SilverSurfer and CassiusClay is given a top priority :D During the first iteration, SS got 13 matches, and CC got 10. And the next, SS: 12, CC: 11. Out of 29. Probably not a bug, but funny :P -- Toz

It's probably because you edited back .85 of CC. It can take a few iterations before the clients snaps out of it. Glad to hear it works now. I hope you succeed in getting the #1 roborumble runner! -- PEZ

While running RR@H I keep getting the same error. Cyanide v1.73 was released, but then changed back to v1.72. I can update my clients participants list, but I am running the parameter default value, RUNONLY=SERVER. I think something is wrong on the servers list, because the output tells different stories. First, the bot is "removed from roborumble" (before running any battles, during preparations). But later the bot rises from the dead and keep joining battles. Why don't the server give me an updated list of robots to use in the battles? -- Toz

Dunno. But it has been like that always. I think maybe the server thinks the old version is back again when results are uploaded for it. It takes a while before the issue is settled. Especially since 1.73 was pulled before it got all its battles. -- PEZ

Strange... Since the repository is out, i uploaded SilverSurfer v 2.62 into my new ftp area. But seems that RR@Home is not downloading it correctly (at least here), but if i download it manually it works. Is that happening with others clients too? If so, any clues about why is this happening? Thanks u all... -- Axe

I get a "Esta página está fora do ar" error when downloading if I click on the link (in the diff page), but download it fine when I put the URL in the browser bar. Maybe it's one of those sites where external referals are not allowed... -- ABC

Thanks, ABC! I never thought in this possibility (actually i didn´t even know that this could happen), i´ll check with the site... -- Axe


I'm getting this:
OK. wiki.mini.BlackDestroyer 0.9.0 vs. rz.SmallDevil 1.502 received
java.io.IOException: Server returned HTTP response code: 500 for URL: http://pez
ius.com/rumble/servlet/UploadedResults
Unable to upload results roborumble,35,800x600,David Alves,1101701761718,SERVER
wiki.mini.BlackDestroyer 0.9.0,3842,1915,27 rz.SmallDevil 1.502,1998,1409,8
OK. rz.SmallDevil 1.502 vs. rz.GlowBlowMelee 1.4 received
java.io.IOException: Server returned HTTP response code: 500 for URL: http://pez
ius.com/rumble/servlet/UploadedResults
Unable to upload results roborumble,35,800x600,David Alves,1101701773234,SERVER
rz.SmallDevil 1.502,2888,1541,19 rz.GlowBlowMelee 1.4,2369,1259,16
OK. kawigi.nano.FunkyChicken 1.1 vs. rz.SmallDevil 1.502 received
Looks like a mixture of successes and failures.... maybe the server is up but running very slowly? --David Alves

Hmmm, I have a few records like that too. Also involving SmallDevil. Maybe something happened to one of its rating file in the crashes yesterday. I'll check it out tonight after work. -- PEZ

Just for the records, i´ve got some of these today too, but dont remember if was only with SmallDevil... -- Axe


The melee ranking is throwing NullPointException? for quite a while... maybe just reseting everything and have a working melee ranking with few battles would be better than trying to recover the old scores and stay with no melee ranking at all. -- MN?

Yeah. Maybe it is that easy. I'll try delete some files... -- PEZ

Ummm. There are no files to delete. Probably I should create some files rather. Problem is, which ones? -- PEZ

The exceptions comes from a part of the code where it is just assumed that a ratings file exist. But it doesn't. Have we tried running melee battles from a client yet? Maybe that would create the files. -- PEZ

Any more news? I have run one meleebattle, but when it finished I got the message 'Not able to open/create ratings file' for every subsequent result. -- GrubbmGait

That's the only news I guess. =) Can you try again? I have created an emtpy ratings file (for MegaBots). -- PEZ

This evening (CET) I will try again. -- GrubbmGait

Something happened !! Please check it out ! I only see one bot though. I will run another battle. -- GrubbmGait

It is not OK yet, the second battle had other bots, but I don't see them in the 'Details' tab. I do see them in the dropdownlist of the 'Compare' screen though. Do you have enough information to continue ? I do not think it helps if more battles are run for now. -- GrubbmGait

I think this might mean we have melee running. Please run more battles. Even if something else is still wrong we are still collecting melee data which we can refeed to the system once it is in shape. -- PEZ

The general melee looks quite ok now. I will run more battles, but I will upload them only late this evening. I'm still using a modem, so I don't have a continuous connection. :-( --GrubbmGait

Wow! =) -- PEZ

Could you do the same things you did for general melee, also do for mini, micro and nano? It really seems ok now. Btw, running melee-battles is VERY good for the RR@Home Uploaders Competition :D --GrubbmGait

OK. I just did ;$ touch ratings_{mini,micro,nano}meleerumble.txt. Imagine that melee has been waiting for so long for this! -- PEZ


Initializing...
Process started.
Iteration number 0
Downloading participants list ...

Downloading missing bots ...
Battles input file not found ... Aborting
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
Downloading rating files ...
Unable to ratings for roborumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?version=1&game=roborumble
Unable to ratings for minirumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?version=1&game=minirumble
Unable to ratings for microrumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?version=1&game=microrumble
Unable to ratings for nanorumble
java.io.FileNotFoundException: http://rumble.robowiki.net/servlet/RatingsFile?version=1&game=nanorumble
Preparing battles list ... Using smart battles is false
Executing battles ...
Iteration number 1
Preparing battles list ... Using smart battles is false
Executing battles ...
Iteration number 2
Preparing battles list ... Using smart battles is false
Executing battles ...
Iteration number 3
Preparing battles list ... Using smart battles is false
Executing battles ...
Iteration number 4
Preparing battles list ... Using smart battles is false
Executing battles ...
Iteration number 5
can someone help me? It just iterates through the battles without doing anithing... well the download doesn't work too. - rozu

The /TemporaryServerUp resides on a different URL than the old one. Update your roborumble.txt file accordingly and it should work. And. Welcome back man! You've been missing for long. -- PEZ

Ah thanks, I didn't know that... -- rozu


Is there a way to fight priority battles offline? There is a (filled) priority1v1.txt file present in the temp directory, but still I fight random battles. My roborumble.txt file is conform the one on the /TemporaryServerUp page. -- GrubbmGait


I'm getting ArrayOutOfBoudnsException? when uploading the results of duels. -- MN?
Uloading results ...
OK. tide.pear.Pear 0.60.4 vs. axeBots.Okami 1.04 received
OK. tide.pear.Pear 0.60.4 vs. davidalves.net.DuelistMicro 1.22 received
OK. tide.pear.Pear 0.60.4 vs. lk.nano.Avesnar 1.1 received
OK. pez.rumble.CassiusClay 1.9.9.82 vs. dummy.micro.HummingBird 2.14 received
OK. tide.pear.Pear 0.60.4 vs. fm.mammillarias 1.3 received
OK. pez.rumble.CassiusClay 1.9.9.82 vs. cf.mini.Chiva 1.0 received
OK. pez.rumble.CassiusClay 1.9.9.82 vs. bvh.fnr.Fenrir 0.36l received
OK. pez.rumble.CassiusClay 1.9.9.82 vs. kcn.unnamed.Unnamed 1.21 received
OK. tide.pear.Pear 0.60.4 vs. shu.nitro.LENIN .T34 received
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1
        at roborumble.netengine.ResultsUpload.uploadResults(ResultsUpload.java:124)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:105)

I reinstalled my robocode from scratch here using the new 1.0.7 version, ran roborumble@home and the following error occurred:
Iteration number 0
Downloading participants list ...
Downloading missing bots ...
Battles input file not found ... Aborting
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
...and after it started deleting all participants from the rumble. :( -- MN?

Please checkout the /TemporaryServerUp page, you have to adapt your roborumble.txt files because the links to the server are changed! -- GrubbmGait

I changed all links to the new server and it was working fine with the former 1.0.6 IBM version... but looks like the roborumble client is incompatible with the new 1.0.7 OpenSource version. (http://robocode.sourceforge.net/) -- MN?

No, its not the 1.0.7 version... I forgot to update the PARTICIPANTSURL line. :(

PARTICIPANTSURL=http://robowiki.net/cgi-bin/robowiki?RoboRumble/Participants
Now the client is working perfectly again. -- MN?


Lately some bots (like b0lt and rpf) are entered in the competition, but they do not show up on the rankings. Howcome? RoboRumble has trouble recognizing these bots as bots because they are not packaged correctly (for RoboRumble that is). Therefor it is highly recommended that bots are packaged within Robocode itself, to make sure that they are valid and ready to enter the competition. Also it is obligatory that a <botname>.properties file is present within the jar-file, this is automatically generated when packaging is done by Robocode. -- GrubbmGait


I've apparently somehow malformed the meleerumble.txt file while updating it for the temporary server. The effect is that while running the client it not only iterates through void battles like rozu's did, but eventually causes the servlet at pulsaronline to crash. I could post my conf file if that could somehow help. --lRem

Mine appears to be working, it's a little tweaked the way I felt like making it:

#RoboRumble@home properties

#properties for executing the modules. Use YES or NOT

DOWNLOAD=YES
EXECUTE=YES
UPLOAD=YES
ITERATE=NOT

#It tells the program if this competitions is for teams. It is necessary since teams.jars are different from bot.jars

MELEE=YES
TEAMS=NOT

#leave it blank or put GENERAL if you want to execute battles for all bots, or use MINI, MICRO or NANO if 
#you want to run only battles for this type of bot.
#Use SERVER if you want an smart client that uses server info to control process of running battles (recommended)
#Melee only suports a simplified SERVER mode

RUNONLY=SERVER

#properties for the battle engine

USER=KAWIGI
INPUT=./roborumble/temp/battlesmelee.txt
PRIORITYBATTLESFILE=./roborumble/temp/prioritymelee.txt
ROUNDS=35
FIELDL=1000
FIELDH=1000
MELEEBOTS=10
OUTPUT=./roborumble/files/resultsmelee.txt

#properties to retrieve bots from internet

BOTSREP=./
TEMP=./roborumble/temp/

#properties to retrieve participants list from internet

PARTICIPANTSURL=http://robowiki.net/cgi-bin/robowiki?RoboRumble/MeleeParticipants
PARTICIPANTSFILE=./roborumble/files/participmelee.txt
STARTAG=pre

#properties to prepare the battles list

NUMBATTLES=10

#properties to upload the results

RESULTSURL=http://rumble.pulsaronline.com:8080/rumble/servlet/UploadedResults

#related competitions (competitions where participants are a subset of the participants in the main competition)
#Comment the following lines if you don't have codesize.jar installed or you are experimenting problems with it.

CODESIZEFILE=./roborumble/files/codesizemelee.txt

MINIBOTS=minimeleerumble
MICROBOTS=micromeleerumble
NANOBOTS=nanomeleerumble

#URLs to download the rating files (and file names)
#BATTLESNUMFILE is the file used to store the number of battles fought by the bots (returned by the server when results are uploaded)

RATINGS.URL=http://rumble.pulsaronline.com:8080/rumble/servlet/RatingsFile

RATINGS.GENERAL=./roborumble/temp/ratings_m_roborumble.txt
RATINGS.MINIBOTS=./roborumble/temp/ratings_m_minirumble.txt
RATINGS.MICROBOTS=./roborumble/temp/ratings_m_microrumble.txt
RATINGS.NANOBOTS=./roborumble/temp/ratings_m_nanorumble.txt

BATTLESNUMFILE=./roborumble/temp/meleebattlesnumber.txt

#URL to tell the server to delete old bots
UPDATEBOTSURL=http://rumble.pulsaronline.com:8080/rumble/servlet/RemoveOldParticipant


BATTLESPERBOT = 1500
-- Kawigi


I have a problem downloading two robots here is what I get
Downloading ...agd.Mooserwirt2 2.7
Unable to download agd.Mooserwirt2 2.7 from site.
Could not download bot agd.Mooserwirt2_2.7.jar
Downloading ...bvh.fry.Freya 0.2m
Downloaded file is wrong or corrupted:bvh.fry.Freya_0.2m.jar
--Florent

I have the same problem. -- StefW

I corrected bvh.fry.Freya from 0.2m to 0.31, melee was already good. --GrubbmGait

For some reason agd.Mooserwirt2 is not available anymore on glyndavies.org. I do have this bot present in my client (and probably some more clients) so it will not miss any pairings. --GrubbmGait


I get java.io.FilePermission? exceptions. I'm suspecting the codesize utility, but am not sure what to do about it.

{snip}
Fighting battle 8 ... pez.clean.Swiffer 0.2.9,apv.test.Virus 0.6.1
RESULT = apv.test.Virus 0.6.1 wins 3080 to 1568
Fighting battle 9 ... dz.Caedo 1.4,axeBots.Musashi 2.18
RESULT = axeBots.Musashi 2.18 wins 4487 to 1611
Uloading results ...
OK. ad.Quest 0.10 vs. md.VelociRaptor 1.3 received
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\md.VelociRaptor_1.3.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\md.VelociRaptor_1.3.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\md.VelociRaptor_1.3.jar read)
OK. bvh.frg.Friga 0.112dev vs. gjr.Cephalosporin 0.2 received
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\bvh.frg.Friga_0.112dev.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\gjr.Cephalosporin_0.2.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\bvh.frg.Friga_0.112dev.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\gjr.Cephalosporin_0.2.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\bvh.frg.Friga_0.112dev.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\gjr.Cephalosporin_0.2.jar read)
OK. rz.Artist 0.2 vs. takeBot.SpinSpiral 1.2 received
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\rz.Artist_0.2.jar read)
Preventing unknown thread Application Thread from access: (java.io.FilePermissio
n .\rz.Artist_0.2.jar read)
{snip}

I'm using java 1.5.0_04

C:\Documents and Settings\FnH>java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode)

Should I do something to rectify this, or can I simply ignore it? --FnH

Is your RoboRumbleR?@Home client using java -Dsun.io.useCanonCaches?=false -Xmx256M ...? (check the file that starts RoboRumble@Home, the bat file for example if on windows) -- Pulsar

contents of roborumble.bat:

cd robots
:run
java -Dsun.io.useCanonCaches=false -Xmx256M -cp .;../newrobocode.jar;../robocode.jar;../codesize.jar; roborumble.RoboRumbleAtHome ./roborumble/roborumble.txt
goto run

Since I'm running on an Athlon X2 I took the liberty of adding newrobocode.jar as it fixes the threading bug. -- FnH

Problem solved itself after turning downloads of bots back on (I turned it off earlier because the repository was down) -- FnH


The content of my last battles1v1.txt seems weird, it looks like this
florent.test.Toad 0.14t,amk.jointstrike.JointStrike 0.2,SERVER
florent.test.Toad 0.14t,gh.GrypRepetyf 0.9fix,SERVER
florent.test.Toad 0.14t,pulsar.Nanis 0.3,SERVER
florent.test.Toad 0.14t,amk.jointstrike.JointStrike 0.2,SERVER
florent.test.Toad 0.14t,gh.GrypRepetyf 0.9fix,SERVER
florent.test.Toad 0.14t,pulsar.Nanis 0.3,SERVER
florent.test.Toad 0.14t,amk.jointstrike.JointStrike 0.2,SERVER
florent.test.Toad 0.14t,gh.GrypRepetyf 0.9fix,SERVER
florent.test.Toad 0.14t,pulsar.Nanis 0.3,SERVER
florent.test.Toad 0.14t,amk.jointstrike.JointStrike 0.2,SERVER
florent.test.Toad 0.14t,gh.GrypRepetyf 0.9fix,SERVER
florent.test.Toad 0.14t,pulsar.Nanis 0.3,SERVER
florent.test.Toad 0.14t,amk.jointstrike.JointStrike 0.2,SERVER
florent.test.Toad 0.14t,gh.GrypRepetyf 0.9fix,SERVER
florent.test.Toad 0.14t,pulsar.Nanis 0.3,SERVER

Is this normal? -- Florent

It can happen when these are the only battles left to be fought to fill up the PL ranking. If it happens continuously, try cleaning your roborumble\temp directory. --GrubbmGait

Ok, it just happened once. -- Florent


Fighting battle 7 ... dz.MostlyHarmlessNano 2.1,florent.test.Toad_RRGC 1.3
Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
        at java.util.Vector.elementAt(Vector.java:432)
        at robocode.peer.ContestantPeerVector.elementAt(ContestantPeerVector.java:61)
        at robocode.battle.BattleResultsTableModel.getValueAt(BattleResultsTableModel.java:84)
        at roborumble.battlesengine.BattlesRunner.runBattles(BattlesRunner.java:95)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:94)

I just changed the version number from RRGC_1.3 to 1.3rrgc and it seems to work. So I think avoiding underscore (_) in the version number should be a good advice. -- Florent

Actually I am getting this a lot, especially while running the meleerumble. I think it occurs after the battle is complete and it is building stats, but that's me guessing. It is pretty aggravating to wait on the battle to be complete only to see it bomb out. -- Martin

I deleted the robots, cache, and database. Then I started the roborumble to let it download bots, then killed it. Then I started the meleerumble to let it download bots, then killed it. Then I started Robocode to let it build the cache and database. Now things are running smoothly in both rumbles. I'll worry about the team rumble in January ... -- Martin


I think someone is running his client with some wrong settings because I don't see how X2 could get this :

el33t.EL33tGangstarr2_2.0	0.9	1	26-4-2006:14:39	93.5	-92.6
-- Florent

I confess I'm very, very tired of not being able to download RobocodeRepository bots. Today, the site is up and the downloads just don't work. Any word on the replacement? If not, I swear I can have something up quickly. It's what I do for a living. Thanks all... --Corbos

I'd be willing to help you if you like. I would have done something already, but I figured if I was going to do it, I'd want to have every version of every bot available, and I just don't have that kind of disk space on davidalves.net anymore... it's run off a virtual server and they introduced disk quotas a while back. =/ --David Alves

I'd help, too, with either coding time or just chipping in some for hosting. On that same note - there are a few new bots that are hosted at the repository, which I can't get to right now. If you guys (PEZ, Stelokim) want to just email them to me, I'll put them into the 3 RR clients that I have running right now. =) -- Voidious

---

I think people hosting rumble servers are running out of memory with my bot. That leads me to two questions. 1) is everybody using the default 256M to run the roborumble? BUT, much more importantly, 2) it seems that between battles objects are not getting garbage collected. It seems to me that, when my static variables go away, the memory they were using should, too. Is this not the case? Should I have to worry about how much memory I (or anyone else) has consumed in previous battles in the same JVM? Then my available memory significantly drops (from ~100M to ~10M, since the rumble runs 10 battles per JVM). -- Simonton

I have my RR clients set to 512M; I don't think you are sharing memory with the other battles in the same iteration. I actually had my clients set to skip the RobocodeRepository bots because it was down sometime recently (and then my clients hang for a looong time), but I'll put that back now and watch it if/when you repost WeeklongObsession. If you're not running out of memory on your own machine, I don't think you should run out of memory in most RR clients, unless you have something much higher than 512M set on yours. -- Voidious

Ok, I'll give it another shot. I have a new version that packs more into the memory I give it now. Should I plan to take my fair share of 256M, or 512? Because the more I give this bot, the better it will perform. -- Simonton

Ok, here's a scenario that just happened in my testing: I've been tweeking my memory to use just the right amount for a battle, restarting Robocode each time. Going great. I find the sweet spot. THEN, after running one battle, instead of re-starting Robocode like I was before (so I could watch the Windows task list for my memory usage), I click "Restart". Things go OK until round 17, then I start skipping turns. The battle slows way down while Java starts doing the garbage collection thing. Round 24: I skip about 20 turns while the battle runs at the speed of a retarded snail on the Alaskan tundra. Turns 25-30: simonton.micro.WeeklongObsession: Throwable: java.lang.OutOfMemoryException. Any suggestions? Would it be any problem to run the rumble @ one battle per JVM? -- Simonton

Hmm. Well, 1 battle per iteration is definitely a problem because it would slow things down so much - a large portion of the time would be spent relaunching the RR client / Robocode engine each time. It looks like my Robocodes reserves 1 gig of Virtual Memory space when I pass "512M" to Robocode, so I'm thinking it must be 512 per bot.

One option would be to set your own client to 1024M (or whatever works) and then not upload your bot, running all the RRAH battles yourself, but that would also mean no new bots get to run battles against yours unless you run your client. Maybe there's just some silly memory leak that you could track down, though? That really is a LOT of memory... Running SandboxDT with hiseg=true vs Shadow, two bots that use a lot of memory, it still only gets to 150 megs (of the allocated 1 gig) after 35 rounds; not much more (158 megs) after 75 rounds.

-- Voidious

By the way, if you want to e-mail me a test version of your bot, I'd gladly test it on my setup. I'm on Mac OS X with 2 gigs of RAM, so it may give a different perspective than your system. I'm also got a Linux box I could test it on. (voidious at gmail) -- Voidious

Oh wow, that's crazy. How could I have a memory leak between battles? I mean, it sounds like that must be what's happening ... but I thought that the way Robocode was set up it was impossible (what with static variables going away & all). Hmm. I wonder if java's String class is trying to keep a map of every single string I ever generated. I know they have that "intern" method. Sure, I'll email it to you ... once its back in a testable state again :). -- Simonton

Oh, I just meant between rounds, not between battles. I don't think you could have one between battles because it loads the bots in a class loader. Someone like Fnl or David Alves would be far more qualified than I to say what kind of scenarios might reasonably cause runaway memory use in Java... It's entirely possible you're validly using that much memory, especially in a CodeSize restricted bot where you can't do things as cleanly, it just seems like a lot when comparing it to some other memory intensive bots. -- Voidious

No, there's something more fishy than just using a lot of memory going on. It will run for 1 battle great every time, but try to run it a second time in the same JVM, no luck. Every time. -- Simonton

You are not the only one with this problem :) I had the same problem with an early version of TeamSliNk, but i still dont know what caused the memory leak :/ We might compare our code and see what could be the reason. --Krabb

Were you creating (theoreticly) upwards of [sum from (i = 0 to 30) of 67^i] unique strings?? I'm pretty convinced that's what's going on in mine. I'm pretty certain Java's string class is going to keep one copy of every unique string I generate in a HashMap? for whatever reason it wants to do that, and I generate a lot of unique strings. I am taking Voidious' suggestion and running it just on my machine. I modified the roborumble client to stop its iteration after it runs a bot with "WeeklongObsession" in its name :). -- Simonton

--- Running a melee rumble client I noticed a weird result:

Fighting battle 1 ... mk.Alpha 0.1,ratosh.Wesco 1.4,ahf.NanoAndrew .4,kawigi.sbf.FloodHT 0.9.2,adt.Ar1 2.1,oa.weak.BotherBot 0.1,qohnil.blot.BlotBot 3.61,amk.ShizzleStiX.ShizzleStiX 0.6,mn.Combat 1.0,shinh.Entangled 0.3
RESULT = kawigi.sbf.FloodHT 0.9.2 wins, kawigi.sbf.FloodHT 0.9.2 is second.
How can a bot be both first and second? -- MarijnK

Method robocode.util.Utils.copy not found

I can't get Roborumble to work, it always fails to copy downloaded files into their right directory.

E:\robocode\roborumble>cd robots

E:\robocode\roborumble\robots>java -Xmx256M -cp .;../robocode.jar;../codesize.ja
r; roborumble.RoboRumbleAtHome ./roborumble/roborumble.txt
Iteration number 0
Downloading participants list ...
Downloading missing bots ...
Downloading ...abc.Shadow 3.66d
Exception in thread "main" java.lang.NoSuchMethodError: robocode.util.Utils.copy
(Ljava/io/File;Ljava/io/File;)Z
        at roborumble.netengine.BotsDownload.downloadBot(BotsDownload.java:217)
        at roborumble.netengine.BotsDownload.downloadMissingBots(BotsDownload.ja
va:157)
        at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:49)

E:\robocode\roborumble\robots>goto run

I'm using Robocode 1.2.4 Beta and Roborumble@home v.beta9 + server classes v.b12 and have followed all the steps mentioned in the wiki. Any ideas how to solve it? -- ALtgLasS

Hmm, that's odd. For the sake of troubleshooting, could you try maybe setting one up with an older version, like [Robocode 1.1.3]? My RR@Home clients still use that version, so I know it works. ;) If it is the version, that might be something for Fnl to fix before 1.2.4 leaves beta. -- Voidious

Seems that the method copy is not any longer implemented in Robocode. Roborumble works fine with the old version, thx for the link. -- ALtgLasS


Does anyone notice anything funny about this:

C:\play\roborumble\robots>java -Dsun.io.useCanonCaches=false -Xmx400M -cp .;../robocode.jar;../codesize.jar; roborumble.RoboRumbleAtHome ./roborumble/roborumble.txt
Iteration number 0
Downloading participants list ...
Downloading missing bots ...
Downloading rating files ...
Removing old participants from server ...
Preparing battles list ... Using smart battles is true
Executing battles ...
Fighting battle 0 ... jep.Terrible 0.4.1,serenity.nonSense 1.34
RESULT = jep.Terrible 0.4.1 wins 3081 to 2336
Fighting battle 1 ... simonton.mini.WeeksOnEnd 1.10,pez.micro.Aristocles 0.3.7
RESULT = simonton.mini.WeeksOnEnd 1.10 wins 2270 to 2296
Uloading results ...
OK. jep.Terrible 0.4.1 vs. serenity.nonSense 1.34 received
OK. simonton.mini.WeeksOnEnd 1.10 vs. pez.micro.Aristocles 0.3.7 received
OK. simonton.mini.WeeksOnEnd 1.10 vs. pez.micro.Aristocles 0.3.7 received
Updating number of battles fought ...
How can WeeksOnEnd WIN 2270 to 2296?? This is not because of my mods to the client; really it's not. -- Simonton

Hmm, I really have no idea... However, I do not think it would adversely affect the actual RoboRumble results, as it should still use (bot score / total score) for the actual percentage, which would be unaffected. I'd have to take a closer look to see how that's possible code-wise, though. What version of Robocode are you using by the way (just curious)?-- Voidious


No one else is having problems with 1.2.5A and the Rumble? My first hint was:

Exception in thread "main" java.lang.NoSuchMethodError: robocode.util.Utils.copy(Ljava/io/File;Ljava/io/File;)Z
  at roborumble.netengine.BotsDownload.downloadBot(BotsDownload.java:217)
  at roborumble.netengine.BotsDownload.downloadMissingBots(BotsDownload.java:157)
  at roborumble.RoboRumbleAtHome.main(RoboRumbleAtHome.java:49)

Trying to compile, it looks like the latest jar has changes in robocode.util.Utils.* and robocode.repository.*? No one else has noticed this?

I'm trying to get past 1.1.4 but am struggling.

GRRRRRRR. --Corbos

Last I am aware of is that the latest that will work is 1.1.5, none of the 1.2.X versions will work with roborumble@home. -- Baal

I am still using 1.1.5. I had tried upgrading to 1.2, but it seemed as though some part of the RoboRumble client was getting the data from battle results with some kind of off-by-1 issue. It was definitely different than that error there. :-\ -- Voidious

Thanks Baal, Voidious. Anyone have a copy of 1.1.5? The download isn't available on sourceforge. Cheers. --Corbos

Starrynyte uploaded this one, link is from Starting with Roborumble page. [[Robocode_1.1.5]] -- Baal

Perfect, many thanks... Corbos

(Guess I should read the page before I post. Looks like many people found this before me... Ah well... thanks again!) --Corbos

According to the Robocode/OldNews page versions 1.1.4 and 1.1.5 are (very) buggy. Maybe it is best to stick with 1.1.3 until the RR@Home issue is solved. -- GrubbmGait


Robo Home | RoboRumble | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited March 8, 2007 4:53 EST by Voidious (diff)
Search: