Jump to content
(AMC)

Minecraft mod pack created for Asterion Minecraft

This is a legacy project. Support for this project was discontinued in January 2016.

While Ginever Entertainment no longer provides any official support for this project, you may be able to find help within the wider Ginever community. For more information, feel free to ask in the forums or in our Discord server.

Sign in to follow this  
AMC-753 (Bug)

ADD sometimes not saved properly if server enters automatic freeze recovery during nether worldgen

Description

ADD sometimes doesn't get written to chunks if the server restarts while in the middle of world generation due to the freeze timer being too restrictive. This is most visible when the server enters automatic freeze recovery while generating sections of the nether.

The most visible side effect of this bug is that blocks added to the nether worldgen system which have block IDs > 255 will not be correctly saved. As a result, it looks like random blocks of creosote/coolant are just all over the place in the newly generated chunks.

I'm not really sure why only the ADD ends up being corrupted while everything else is still fine. This is kinda baffling to me. Probably shoddy implementation of the map saving system.

A potential workaround to avoid the problem is to set a really long freeze timer, which would prevent nether generation from triggering freeze recovery. Another possible workaround might be to somehow reset the freeze timer during world generation, although this might require a more extensive rewrite of the chunk generation code.

Related Issues

This issue is not related to any other issues

User Feedback

Recommended Comments

Tinytimrob
Issue Creator Current Assignee Project Manager Programming Lead

Posted

Confirmed issue

java.util.ConcurrentModificationException
	at java.util.TreeMap$PrivateEntryIterator.nextEntry(Unknown Source)
	at java.util.TreeMap$KeyIterator.next(Unknown Source)
	at net.minecraft.world.WorldServer.func_72920_a(WorldServer.java:679)
	at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75820_a(AnvilChunkLoader.java:420)
	at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75816_a(AnvilChunkLoader.java:212)
	at net.minecraft.world.gen.ChunkProviderServer.func_73242_b(ChunkProviderServer.java:292)
	at net.minecraft.world.gen.ChunkProviderServer.func_73151_a(ChunkProviderServer.java:347)
	at net.minecraft.world.WorldServer.func_73044_a(WorldServer.java:902)
	at net.minecraft.server.MinecraftServer.func_71267_a(MinecraftServer.java:413)
	at net.minecraft.server.MinecraftServer.func_71260_j(MinecraftServer.java:469)
	at robbit.servermonitor.ServerMonitor.restartServer(ServerMonitor.java:179)
	at robbit.servermonitor.ServerMonitor.run(ServerMonitor.java:305)

Looks like two threads are trying to save the map data at the same time, which is causing CME. Probably fixable using synchronization.

Share this comment


Link to comment
Share on other sites
Tinytimrob
Issue Creator Current Assignee Project Manager Programming Lead

Posted

Marked issue as fixed in version SNAPSHOT (139c6413f11f)

Attempted a fix in r5108. Hopefully should resolve the problem. A little hard to test from here, so further testing might mean the issue gets re-opened.

Share this comment


Link to comment
Share on other sites
Tinytimrob
Issue Creator Current Assignee Project Manager Programming Lead

Posted

Marked issue as resolved in version Fondant 27 DEV9.5 [r5112] (5c3b764c9b92)

Resolved in 27 DEV9.5

Share this comment


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Create a new GineverAccount today. It's easy!

Register a new account

Sign In with GineverAccount 5.1

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...