Project Red - Exploration

Project Red - Exploration

27M Downloads

StackOverflow if part of the pipe network is in unloaded chunks

twothe opened this issue ยท 2 comments

commented

This is the setup that caused the issue:

pipecrash

The central pipe happens to be on a chunk border, the left 2 chests were in an unloaded chunk, while the 2 right chests were still loaded thanks to the quarry. While I was far enough away to have those 2 chests in an unloaded chunk, the server repeatedly crashed with a StackOverflow issue. It was possible to walk back to the pipe system and have it loaded, as the crash only occurred after a few seconds of gameplay.

Crash report (shortened):

java.lang.StackOverflowError
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:58)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.getConnectedRoutingPipes(LSPathFinder.java:106)
at mrtjp.projectred.transportation.LSPathFinder.<init>(LSPathFinder.java:36)
at mrtjp.projectred.transportation.LSPathFinder.<init>(LSPathFinder.java:30)
at mrtjp.projectred.transportation.Router.updateLSAIfNeeded(Router.java:118)
at mrtjp.projectred.transportation.Router.LSAUpdateFloodfill(Router.java:200)
at mrtjp.projectred.transportation.Router.startLSAFloodfill(Router.java:183)
at mrtjp.projectred.transportation.Router.decommission(Router.java:231)
at mrtjp.projectred.transportation.Router.updateLSAIfNeeded(Router.java:125)
at mrtjp.projectred.transportation.Router.LSAUpdateFloodfill(Router.java:200)
at mrtjp.projectred.transportation.Router.startLSAFloodfill(Router.java:183)
    [....]
    at mrtjp.projectred.transportation.Router.startLSAFloodfill(Router.java:183)
at mrtjp.projectred.transportation.Router.decommission(Router.java:231)
at mrtjp.projectred.transportation.Router.updateLSAIfNeeded(Router.java:125)
at mrtjp.projectred.transportation.Router.LSAUpdateFloodfill(Router.java:200)
at mrtjp.projectred.transportation.Router.startLSAFloodfill(Router.java:183)
commented

Possibly fixed via 3cbebd4

commented

Prevented further via d3d893d