Rare sector EOFException when exploring the aether
SkySwimmer opened this issue ยท 1 comments
I have encountered a rare issue when a player attempts to join the Aether and gets kicked with an EOFException.
After being kicked with an 'Internal Server Error', the player will not be able to join the server, unless they are teleported to a different world.
Server software:
Running Magma 1.12.2 (dd991e7-DEV, the stable build also doesn't work)
Running 89 other mods.
I have managed to locally fix the issue by changing the following code:
// File: src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessServer.java
// Line: 311
try (InputStream stream = new ByteArrayInputStream(bytes))
{
final IPrepSectorData sector = this.readSectorDataFromStream(stream);
if (sector.getSectorX() != sectorX || sector.getSectorY() != sectorY)
{
throw new IOException(String.format("Sector has wrong coordinates on disk! (expected [%s, %s], found [%s, %s])",
sectorX, sectorY, sector.getSectorX(), sector.getSectorY()));
}
return sector;
}
To:
// File: src/main/java/com/gildedgames/aether/common/world/preparation/access/PrepSectorAccessServer.java
// Line: 311
try
{
try (InputStream stream = new ByteArrayInputStream(bytes))
{
final IPrepSectorData sector = this.readSectorDataFromStream(stream);
if (sector.getSectorX() != sectorX || sector.getSectorY() != sectorY)
{
throw new IOException(String.format("Sector has wrong coordinates on disk! (expected [%s, %s], found [%s, %s])",
sectorX, sectorY, sector.getSectorX(), sector.getSectorY()));
}
return sector;
}
} catch (IOException e) {
OrbisLib.LOGGER.warn("Sector (" + sectorX + ", " + sectorY + ") has been corrupted! It should be re-generated before use!");
return null;
}
I have attached some files:
Error log snippet
Patched PrepSectorAccessServer.java file
Hope this helps.
- Sky Swimmer