Botania

Botania

133M Downloads

Botania causes excessive load and makes game unplayable

twothe opened this issue ยท 25 comments

commented

I have encountered an issue with Botania on my server where a player built huge mana generation structures. The server is constantly locked at 100% CPU and even trying to play the map in single player causes lags >5 seconds, making the game unplayable.

I cannot pinpoint the issue as the game is unplayable, only that it has to be a Botania issue, as removing Botania clears it, and removing all mods but Botania still has the issue.

I created a minimal save file that contains the chunks that cause the problem, which can be downloaded here. That safe should cause the issue with nothing but Botania/Baubles used.

It would be great if you could have a look at this issue as soon as your time allows, as currently the server is forced to stay offline because of that bug. I don't want to simply delete what players have built for weeks now.

commented

could you probably install java SDK (software development kit) on your server and launch either Java Visual VM or Java Mission Control from the bin folder and make a profile of your server while trying to be logged in on this position to get an idea what is causing this... and probably a few screenshots when posible

commented

Mission control shows no useful data, except that the CPU usage is <12%, while the game behaves like it is completely overloaded. I don't think I will find anything without detailed knowledge about Botania internals.

commented

you can either make a flight record (just hit yes on the dialog) and upload the result soemwhere or in visualVM make a profile

commented

I uploaded the recording (1 minute starting right after world login) here: http://arstwo.de/minecraft/BotaniaIssue.jfr

The structure the player created is basically a set of 4 towers with a total of 640 Hydroangeas via 32 Gaia Spreaders to generate mana. The odd thing is that this worked perfectly fine yesterday and the issue only started after the daily server restart.

commented
           vazkii.botania.common.entity.EntityManaBurst.superUpdate()   4.192   91,97
              vazkii.botania.common.entity.EntityManaBurst.func_70071_h_()  4.192   91,97
                 net.minecraft.world.World.func_72866_a(Entity, boolean)    4.128   90,566

i'd suspect
List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D));
as func_70071_h_() is an call on some vnilla code and this looks like the only thing i can imagine would call vanilla :D

commented

Most likely user's fault, a big cluster of tile entities is bound to cause lag sometime, not a direct problem with the mod.

commented

Looking at the Entity count in debug view (why didn't I do that earlier??) reports 23k entities active (game is on peaceful).

Is it possible that while no one was online those spreaders accumulated mana shots that now all linger?

commented

thats what i was trying to figure out also, can you try top kill all mana shot enitiies with some sort of command ?

looks like the chunkloading went horribly wrong there

but this call is supposed to ignore it's own entities on call as i understand it, but will this still result in such a bad performance ?

commented

alternatively try turning OFF this option

        desc = "Turn this off ONLY IF you're on an extremely large world with an exaggerated count of Mana Spreaders/Mana Pools and are experiencing TPS lag. This toggles whether flowers are strict with their checking for connecting to pools/spreaders or just check whenever possible.";
        flowerForceCheck = loadPropBool("flower.forceCheck", desc, flowerForceCheck);

@Vazkii you can probably tighten down that list of entities if you add the third parameter to that call (but i suspect this will not help in this case anyways)
worldObj.getEntitiesWithinAABBExcludingEntity(Entitty, Location, __Selector__) where Selector is an implementation of IEntitySelector telling which entities are applicable or which are not

commented

I did try those options and a few more things, but nothing fixes the issue. However editing the world with MCEdit and deleting all entities from the chunks in question did, which were mostly mana shots.

So my theory that somehow those mana shots accumulated and lingered while no one was online on the server seems the most plausible one to me.

That however allows me to start the server again. Thanks a lot for the quick help!

commented

check the chunkloaders installed in that location(either remove them or chunkload properly!), if there are none present, check if you have the "last" stable of enderIO installed, that contained an bug where conduits keep chunks they are in loaded

commented

There is no chunk loading mod on the server and we should be far away from world spawn to rule that out.

commented

other mods like enderio that i mentioned? to be more precise, is there anything in range of that tower related to other mods, if yes, what

commented

No, we are playing Harness the Power, which include only magic centered mods. Aside from Botanica the other major mods are Witchery, Ars Magica 2 (009) and Thaumcraft.

commented

any vanilla hoppers that are crossing chunkborders or any project red stuff? you definately have something loading the tower partially, i can not tell without seeing it :D

4 hopper feeding into each other ath the corner of 4 chunks make a very cheaty 2x2 chunkloader

commented

There is some project red stuff and hoppers but pretty far away. In addition the 4 mana generator towers are mirrored around the center (focused on a pool with a terra shatterer) and all of them had lingering entities. So whatever would have kept those chunks online would have to just not load a few blocks in the center but everything around it. I wouldn't know anything that does that.

commented

If you want you can log on the server or I create a larger save file for you?

commented

I'll stick with that chunks you uploaded there when i have worldedit on hand again :D

commented

Please read the contributing guidelines before posting an issue. Your issue is either missing critical information or going against one of the guidelines there stipulated.
I'm closing this issue until it's rectified to follow the guidelines. You can comment on closed issues.
This message is a macro.

commented

We just discussed, identified and located/fixed the issue, that is not the right time to tell me that the information provided was insufficient...

commented

There's no logs, I have no idea what you have on the server. You're talking about hydroangeas being spammed and causing lag and having thousands of entities in the world, which are bugs I believe I've already fixed. So yes, I could use some logs.

commented

@Vazkii i am sorry, know this was a bit rough from me to blow the issue this big ... github need a privat chat for such exchange -.- but please consider the line i mentioned a few posts earlier, dunno if it helps, but maybe :)

commented

Adding a selector will make performance worse as it has to check against it.

commented

okay, then nevermind

commented

@Vazkii There are no log entries so providing logs would not help much. For the setup I uploaded a partial world with the chunks in question as well as the mod pack that is used, if there is anything else lacking I will happily provide it.

If that bug has already been fixed I couldn't find a note in the changelog, and my initial attempts to fix that by updating the version weren't successful (since the entities were still there).

Mindforger has been very helpful on pinpointing the issue and getting my server up and running again without having to delete what the players built, which was very very helpful!