View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001492||Industrial-Craft²||general / other||public||2014-12-14 16:23||2014-12-18 10:23|
|Product Version||Builds for MC 1.7.10|
|Summary||0001492: massive memory leak caused by chunks that spawn IC2 blocks in it randomly|
|Description||Some 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.
(white wool represents uu matter)
|Steps To Reproduce||create 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 Information||MAYBE 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.
|Tags||No tags attached.|
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:
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.
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.
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.
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.
||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.|
||If you had a wind mill within view distance, this issue may be the same as 0001478|
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).
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.
|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|