RoboRunner freeze

Jump to navigation Jump to search
Revision as of 21 January 2023 at 19:26.
This is the thread's initial revision.

RoboRunner freeze

Hi, could you help with your version of RoboRunner from github.

I use to use User:Voidious' version and was fine until several years ago. This year (2023) I tried to run it but it just freezes. Then I switched to your fork, it also freezes but at least produce some output to post.

./rr.sh -bot zyx.nano.RedBull 1.0 -c competitions/sample_1v1.rrc -seasons 1 -t 1


Copying missing bots... 0 JAR copies done!
Initializing engine: ./robocodes/r1... java.io.IOException: processOutput == null
        at robowiki.runner.BattleRunner.initEngine(BattleRunner.java:68)
        at robowiki.runner.BattleRunner.<init>(BattleRunner.java:42)
        at robowiki.runner.RoboRunner.<init>(RoboRunner.java:166)
        at robowiki.runner.RoboRunner.main(RoboRunner.java:81)

Challenger:     zyx.nano.RedBull 1.0
Challenge:      Sample 1v1 Test Bed
Seasons:        1
Threads:        1
Scoring:        Average Percent Score
Smart battles:  Off

java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "java.lang.Process.getOutputStream()" because "battleProcess" is null
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at robowiki.runner.BattleRunner.getAllFutures(BattleRunner.java:97)
        at robowiki.runner.BattleRunner.runBattles(BattleRunner.java:82)
        at robowiki.runner.RoboRunner.runBattles(RoboRunner.java:322)
        at robowiki.runner.RoboRunner.main(RoboRunner.java:87)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Process.getOutputStream()" because "battleProcess" is null
        at robowiki.runner.BattleRunner$BattleCallable.call(BattleRunner.java:177)
        at robowiki.runner.BattleRunner$BattleCallable.call(BattleRunner.java:156)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "java.lang.Process.getOutputStream()" because "battleProcess" is null
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at robowiki.runner.BattleRunner.getAllFutures(BattleRunner.java:97)
        at robowiki.runner.BattleRunner.runBattles(BattleRunner.java:82)
        at robowiki.runner.RoboRunner.runBattles(RoboRunner.java:322)
        at robowiki.runner.RoboRunner.main(RoboRunner.java:87)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Process.getOutputStream()" because "battleProcess" is null
        at robowiki.runner.BattleRunner$BattleCallable.call(BattleRunner.java:177)
        at robowiki.runner.BattleRunner$BattleCallable.call(BattleRunner.java:156)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "java.lang.Process.getOutputStream()" because "battleProcess" is null
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at robowiki.runner.BattleRunner.getAllFutures(BattleRunner.java:97)
        at robowiki.runner.BattleRunner.runBattles(BattleRunner.java:82)
        at robowiki.runner.RoboRunner.runBattles(RoboRunner.java:322)
        at robowiki.runner.RoboRunner.main(RoboRunner.java:87)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Process.getOutputStream()" because "battleProcess" is null
        at robowiki.runner.BattleRunner$BattleCallable.call(BattleRunner.java:177)
        at robowiki.runner.BattleRunner$BattleCallable.call(BattleRunner.java:156)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

Done! Took 0.1s

All scores:

Exception in thread "main" java.lang.ArithmeticException: / by zero
        at robowiki.runner.RoboRunner.printOverallScores(RoboRunner.java:471)
        at robowiki.runner.RoboRunner.runBattles(RoboRunner.java:333)
        at robowiki.runner.RoboRunner.main(RoboRunner.java:87)

I tried to run wit openjdk 11 and 17, the results are similar.

Side note I could gradle your version only with openjdk-11.

I suspect that it is all due to jdk change, since it also broke Voidious' version which use to work just fine. But I cannot spot what is wrong.

    Beaming (talk)21:26, 21 January 2023