OutOfMemory on MindCrack server.

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

BrainManHFT

New Member
Jul 29, 2019
2
0
0
Hi.

Actually, I am pretty sure of what happened to my server the other day, this is mainly to try and figure out how to salvage the situation, if possible, so I don't want to tag this as a problem, as such..

This is a Debian Linux virtual server, running on top of a VMWare ESXi5 host locally.
I am running Mindcrack server (Not sure of the exact version, it is MineCraft 1.4.7, FML: MCP v7.26a FML v4.7.35.556 Minecraft Forge 6.6.2.534 - latest by april 2. 2013, afaik.)
Nothing has been done to touch the modpack.
The server has 6 virtual cores (2693MHz each), 12Gb of RAM at the time of failure. The host has enough resources to provide this exclusively to this virtual guest.
It has also been started with a stack heap size of 8Gb.

My problem:
As I built an extreme array (4096) of ultimate hybrid solar panels, all was well until I started touching some of the other blocks outside the array. After a short while, the server disconnected me, and seemed to hang completely, with java utilizing 100% of one of the vCPU cores. The server finally came up with the crash report below. Killing and restarting the server and reconnecting lets me see the world, move around a short while, and then crashes again. Interacting with anything in the world does not work, as the server apparently has already hung when my client connects, leaving me in a locally-cached world.

I know it is probably related to the extreme abundancy of power generated/stored in the chunks. Probably the storage of power in the solar panels, as I could still play for a few minutes after the panels had been placed.

Does anyone have any idea what kind of heap size I would need for this kind of construction? Or how I could remove/reset the problem chunk completely, leaving the rest of the world intact?

This also seems to cause a LOT of CPU usage, is there any way to get this server to use all six cores? That way, the crash might happen a little sooner. (It takes about an hour with high cpu loads to finally get a crash report.)



Code:
---- Minecraft Crash Report ----
// Who set us up the TNT?
 
Time: 4/1/13 12:29 PM
Description: Ticking tile entity
 
java.lang.OutOfMemoryError: Java heap space
        at ic2.api.Direction.applyToTileEntity(Direction.java:56)
        at ic2.core.EnergyNet.discover(EnergyNet.java:567)
        at ic2.core.EnergyNet.emitEnergyFrom(EnergyNet.java:229)
        at ic2.core.EnergyNet$EventHandler.onEnergyTileSource(EnergyNet.java:61)
        at net.minecraftforge.event.ASMEventHandler_32_EventHandler_onEnergyTileSource_EnergyTileSourceEvent.invoke(.dynamic)
        at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:35)
        at net.minecraftforge.event.EventBus.post(EventBus.java:103)
        at advsolar.TileEntitySolarPanel.sendEnergy(TileEntitySolarPanel.java:331)
        at advsolar.TileEntitySolarPanel.g(TileEntitySolarPanel.java:217)
        at yc.h(World.java:2153)
        at in.h(WorldServer.java:516)
        at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:680)
        at ho.r(DedicatedServer.java:269)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:599)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497)
        at fy.run(SourceFile:849)
 
 
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
 
-- Head --
Stacktrace:
        at ic2.api.Direction.applyToTileEntity(Direction.java:56)
        at ic2.core.EnergyNet.discover(EnergyNet.java:567)
        at ic2.core.EnergyNet.emitEnergyFrom(EnergyNet.java:229)
        at ic2.core.EnergyNet$EventHandler.onEnergyTileSource(EnergyNet.java:61)
        at net.minecraftforge.event.ASMEventHandler_32_EventHandler_onEnergyTileSource_EnergyTileSourceEvent.invoke(.dynamic)
        at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:35)
        at net.minecraftforge.event.EventBus.post(EventBus.java:103)
        at advsolar.TileEntitySolarPanel.sendEnergy(TileEntitySolarPanel.java:331)
        at advsolar.TileEntitySolarPanel.g(TileEntitySolarPanel.java:217)
 
-- Tile entity being ticked --
Details:
        Name: Ultimate Hybrid Solar Panel // advsolar.TileEntityUltimateSolarPanel
        Block type: ID #0
        Block data value: Unknown? (Got -1)
        Block location: World: (46,77,-114), Chunk: (at 14,4,14 in 2,-8; contains blocks 32,0,-128 to 47,255,-113), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Stacktrace:
        at yc.h(World.java:2153)
        at in.h(WorldServer.java:516)
 
-- Affected level --
Details:
        Level name: world
        All players: 1 total; [iq['BrainManHFT'/2595, l='world', x=48.91, y=73.46, z=-282.57]]
        Chunk stats: ServerChunkCache: 811 Drop: 0
        Level seed: -4867216753753828192
        Level generator: ID 00 - default, ver 1. Features enabled: true
        Level generator options:
        Level spawn location: World: (101,64,229), Chunk: (at 5,4,5 in 6,14; contains blocks 96,0,224 to 111,255,239), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
        Level time: 11572330 game time, 9724032 day time
        Level dimension: 0
        Level storage version: 0x04ABD - Anvil
        Level weather: Rain time: 10186 (now: false), thunder time: 34 (now: true)
        Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false
Stacktrace:
        at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:680)
        at ho.r(DedicatedServer.java:269)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:599)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497)
        at fy.run(SourceFile:849)
 
-- System Details --
Details:
        Minecraft Version: 1.4.7
        Operating System: Linux (amd64) version 2.6.32-5-amd64
        Java Version: 1.6.0_26, Sun Microsystems Inc.
        Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Sun Microsystems Inc.
        Memory: 764728656 bytes (729 MB) / 7807303680 bytes (7445 MB) up to 7807303680 bytes (7445 MB)
        JVM Flags: 2 total; -Xms8G -Xmx8G
        AABB Pool Size: 8262 (462672 bytes; 0 MB) allocated, 293 (16408 bytes; 0 MB) used
        Suspicious classes: FML and Forge are installed
        IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63
        FML: MCP v7.26a FML v4.7.35.556 Minecraft Forge 6.6.2.534 61 mods loaded, 61 mods active
 [mod list]
 
        Profiler Position: N/A (disabled)
        Vec3 Pool Size: 1697 (95032 bytes; 0 MB) allocated, 212 (11872 bytes; 0 MB) used
        Player Count: 1 / 3; [iq['BrainManHFT'/2595, l='world', x=48.91, y=73.46, z=-282.57]]
        Is Modded: Definitely; Server brand changed to 'forge,fml'
        Type: Dedicated Server (map_server.txt)
 

dariusc93

New Member
Jul 29, 2019
58
0
0
You may want to remove the solar panel located at: 46,77,-114 (use nbtexplorer or a custom script to remove blocks). You may want to increase change your startup script so that it can help with performance.

Heres a example (one of my startup scripts):
Code:
java -server -XX:PermSize=128m -XX:UseSSE=4 -XX:+UseCMSCompactAtFullCollection -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+AggressiveOpts -Xmx8048M -jar ftbserver.jar nogui

i have a different one now thats more affective but change accordingly to how your server is setup.
 

BrainManHFT

New Member
Jul 29, 2019
2
0
0
The other players on the server agreed to scrap the world and recreate it from the same seed, so the problem is gone at the moment. However, we tend to go a bit overboard in our machines, so we still need the server to utilize multiple cores. That seems to be a problem, as it seems like there are a lot of parts of the server that cannot benefit from parallel computing. I tried a similar startup while having problems, with even more parallel threads. Still stuck one core at 100% and hung. (After having utilized over 300% for a few minutes)

I'll have to monitor the server a bit more closely, I guess, and try not to go completely bananas when building. :)