The Aether II

The Aether II

6M Downloads

Rare sector EOFException when exploring the aether

SkySwimmer opened this issue ยท 1 comments

commented

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

commented

I am not sure this fixes everything, my server's aether world is now pretty messed-up, but i am not kicked anymore