View Issue Details

IDProjectCategoryView StatusLast Update
0001492Industrial-Craft²general / otherpublic2014-12-18 10:23
ReporterToddVee Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
Product VersionBuilds for MC 1.7.10 
Summary0001492: massive memory leak caused by chunks that spawn IC2 blocks in it randomly
DescriptionSome chunks spawn IC2 blocks like copper blocks, machine blocks or uu matter. It is arranged as if it was ore, in veins.

I do not use IC2's ores, all are disabled via config.

Picture:
https://www.wuala.com/ToddVee/Minecraft/3.png/?key=k2nhdnUoE2bu
(white wool represents uu matter)

IC2: 2.2.654
Forge: 10.13.2.1240
Steps To Reproducecreate a new world

use worldedit to create a big region (200x200x70 blocks should sufice)

replace various IC2 blocks with air, if you get hits, you reproduced the problem.
e.g. //replace 216 0 (replace uu matter w/ air) = 32 blocks changed in my example.

replace everything but IC2 blocks to visualize them.
Additional InformationMAYBE CROSSMOD COMPATIBILITY?: From the size of the veins, it is possible to see a connection with Chisel 2. The large copper vein is exactly the size of a limestone vein, whereas the machine casing and uu matter would represent marble. Since the number of affected chunks is rather small, I did not manage to narrow the problem down to one single mod.

If I happened to find an affected chunk, the server would usually die / stop workding. A restart sometimes does it, but in many cases I had to remove the affected regions to make the map playable again.
TagsNo tags attached.
Minecraft Version

Activities

ToddVee

2014-12-14 17:07

reporter   ~0003606

In the meantime, I made some tests. It seems the corrupted chunks are not as rare as I first thought. I managed to find one that very likely shows that it is a crossmod related issue with Chisel 2:

https://www.wuala.com/ToddVee/Minecraft/5.png/?key=k2nhdnUoE2bu

Player

2014-12-15 08:18

administrator   ~0003607

That's unlikely to be related to IC2 at all, the corruption just happened to fall into IC2's ID range. We don't integrate with Chisel afaik.

I could think of those possible causes:
- The level.dat (which contains the id<->block mappings) was deleted or altered. A new one generated after a restart is likely to have some mismatched mappings if mods+versions weren't exactly the same as when the server was originally started.
- Parts of another map were copied in. Those aren't compatible without adjusting IDs first.
- Some obscure mod bug messing with the block registry or keeping id-references to blocks globally.

Considering you are describing it with a newly generated map, only the last option would be plausible. Try removing mods until it stops happening.

Btw. non-TileEntity blocks can't really leak memory, they don't carry any extra data. The basic machine block (meta 0), metal blocks (copper block etc.), IC2 fluid blocks and others all don't have tile entities.

ToddVee

2014-12-15 10:37

reporter   ~0003609

Thank you for the info.. As you say, its a new map and the level.dat hasnt been changed. Also, I did not copy or delete parts of the map.

The "leaking" idea was about when I start a single player map and come across an errorring chunk like I described, my ram fills up to 100% usage which I monitor with the task manager, seeing that java uses up to 6.9 gig of a total of 8 gig ram when my -xmx for MC is 5G. Thats why I thought it might be a memory leak.

I will start with removing chisel 2. But I also noticed that Project Red's ores as well as Thaumcraft ores are being replaced by standard sandstone stairs. So it is plausibe and very likely that the last option you gave is most likely true.

Player

2014-12-15 12:22

administrator   ~0003610

The output of /csampler memory would be interesting, assuming it's on the client. Once after the startup and another one after significant leaking.

You can find the sampler mod in the 2nd unfoldable box in the fastcraft thread.

ToddVee

2014-12-15 14:22

reporter   ~0003612

I could not find any corrupted chunks when I used the sampler. But maybe, a hint is to find in the files. I uploaded the sampler.nps files.
I am not too much into java. I tried visual VM once, but another important prog on my machine doesnt work with it installed so I would be happy to hear from you and what you maybe found out.

https://www.wuala.com/ToddVee/Minecraft/Sampler/?key=k2nhdnUoE2bu

Player

2014-12-17 05:12

administrator   ~0003617

I've actually referred to running the command "/csampler memory" (or /sampler for dedicated server). It'll display much more detailed information about Java's memory usage, including some mc doesn't show by itself.

Player

2014-12-18 06:47

administrator   ~0003623

If you had a wind mill within view distance, this issue may be the same as 0001478

ToddVee

2014-12-18 08:26

reporter   ~0003624

There are no wind mills. The only IC2 power source in use are solar panels, and thats only 10 or 12 of them. The standard 1Eu/t ones.

samper memory output after 1 day w/o restart, noone online.

18.12 09:26:02 [Server] INFO [09:26:02] [Server thread/INFO]: GC ConcurrentMarkSweep: 43x in 11535 ms (48 ppm of uptime).
18.12 09:26:02 [Server] INFO [09:26:02] [Server thread/INFO]: GC ParNew: 31795x in 895446 ms (3745 ppm of uptime).
18.12 09:26:02 [Server] INFO [09:26:02] [Server thread/INFO]: Pool mapped: 0 buffers using 0 MB (capacity 0 MB).
18.12 09:26:02 [Server] INFO [09:26:02] [Server thread/INFO]: Pool direct: 9 buffers using 25 MB (capacity 25 MB).
18.12 09:26:02 [Server] INFO [09:26:02] [Server thread/INFO]: Non heap: 133 / 565 MB (max. 1124 MB).
18.12 09:26:02 [Server] INFO [09:26:02] [Server thread/INFO]: Heap: 1370 / 4268 MB (max. 4268 MB).

Player

2014-12-18 10:23

administrator   ~0003625

Hmm that's odd. Please try the new Sampler version 1.15.

Is it leaking on the client or the server if you are not playing in single player?

Btw. according to your nps files plantmegapack.worldgen.PMPWorldGenerator.generateSurface() is unusually CPU heavy during world/chunk generation. The server was well below saturated.

The command /(c)sampler counts 0 will list the tile entities in dimension 0 (overworld), maybe it'll show something suspicious.

Issue History

Date Modified Username Field Change
2014-12-14 16:23 ToddVee New Issue
2014-12-14 17:07 ToddVee Note Added: 0003606
2014-12-15 08:18 Player Note Added: 0003607
2014-12-15 10:37 ToddVee Note Added: 0003609
2014-12-15 12:22 Player Note Added: 0003610
2014-12-15 14:22 ToddVee Note Added: 0003612
2014-12-17 05:12 Player Note Added: 0003617
2014-12-18 06:47 Player Note Added: 0003623
2014-12-18 08:26 ToddVee Note Added: 0003624
2014-12-18 10:23 Player Note Added: 0003625