View Issue Details

IDProjectCategoryView StatusLast Update
0000647Industrial-Craft²E-Net, cabling, storage/transformer blockspublic2014-06-26 15:24
Reporterderelicthor Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionopen 
Summary0000647: Crash after break wiring
Description---- Minecraft Crash Report ----
// I blame Dinnerbone.

Time: 27/09/13 2:39
Description: Exception in server tick loop

java.lang.OutOfMemoryError: Java heap space
    at java.util.LinkedList.linkLast(Unknown Source)
    at java.util.LinkedList.add(Unknown Source)
    at ic2.core.energy.Grid.remove(Grid.java:114)
    at ic2.core.energy.EnergyNetLocal.removeTileFromGrids(EnergyNetLocal.java:413)
    at ic2.core.energy.EnergyNetLocal.removeTileEntity(EnergyNetLocal.java:152)
    at ic2.core.energy.EventHandler.onEnergyTileUnload(EventHandler.java:36)
    at net.minecraftforge.event.ASMEventHandler_32_EventHandler_onEnergyTileUnload_EnergyTileUnloadEvent.invoke(.dynamic)
    at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)
    at net.minecraftforge.event.EventBus.post(EventBus.java:108)
    at ic2.core.block.wiring.TileEntityCable.onUnloaded(TileEntityCable.java:150)
    at ic2.core.block.BlockMultiID.func_71927_h(BlockMultiID.java:307)
    at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:702)
    at net.minecraft.world.World.func_72832_d(World.java:559)
    at ic2.core.block.wiring.BlockCable.removeBlockByPlayer(BlockCable.java:401)
    at net.minecraft.item.ItemInWorldManager.func_73079_d(ItemInWorldManager.java:275)
    at net.minecraft.item.ItemInWorldManager.func_73084_b(ItemInWorldManager.java:312)
    at net.minecraft.item.ItemInWorldManager.func_73074_a(ItemInWorldManager.java:170)
    at net.minecraft.network.NetServerHandler.func_72510_a(NetServerHandler.java:492)
    at net.minecraft.network.packet.Packet14BlockDig.func_73279_a(SourceFile:46)
    at net.minecraft.network.MemoryConnection.func_74428_b(MemoryConnection.java:89)
    at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:141)
    at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
    at net.minecraft.server.integrated.IntegratedServerListenThread.func_71747_b(IntegratedServerListenThread.java:109)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:689)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:585)
    at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:129)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:582)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
    Minecraft Version: 1.6.2
    Operating System: Windows 7 (x86) version 6.1
    Java Version: 1.7.0_25, Oracle Corporation
    Java VM Version: Java HotSpot(TM) Client VM (mixed mode, sharing), Oracle Corporation
    Memory: 248070352 bytes (236 MB) / 518979584 bytes (494 MB) up to 518979584 bytes (494 MB)
    JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
    AABB Pool Size: 1780 (99680 bytes; 0 MB) allocated, 1709 (95704 bytes; 0 MB) used
    Suspicious classes: FML and Forge are installed
    IntCache: cache: 0, tcache: 0, allocated: 2, tallocated: 64
    FML: MCP v8.04 FML v6.2.62.871 Minecraft Forge 9.10.1.871 65 mods loaded, 65 mods active
    mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    FML{6.2.62.871} [Forge Mod Loader] (minecraftforge-9.10.1.871.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    Forge{9.10.1.871} [Minecraft Forge] (minecraftforge-9.10.1.871.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    AppliedEnergistics-Core{rv13.c} [AppliedEnergistics Core] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    CodeChickenCore{0.9.0.5} [CodeChicken Core] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    denLib{3.1.23} [denLib] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NotEnoughItems{1.6.1.3} [Not Enough Items] (NotEnoughItems 1.6.1.3.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    jammyfurniture{4.5} [Jammy Furniture Mod] (1.6.2_Jammy_Furniture_Mod_V4.5.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    mod_MouseTweaks{2.3.3 (for Minecraft 1.6.2)} [Mouse Tweaks] ([1.6.2] Mouse Tweaks 2.3.3.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    mod_ReiMinimap{v3.4_01 [1.6.2]} [mod_ReiMinimap] ([1.6.2]ReiMinimap_v3.4_01.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    cfm{3.1} [§4MrCrayfish's Furniture Mod] ([Forge]FurnitureModv3.1.1(1.6.2).zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BuildCraft|Core{4.0.2} [BuildCraft] (buildcraft-A-4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BuildCraft|Factory{4.0.2} [BC Factory] (buildcraft-A-4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BuildCraft|Transport{4.0.2} [BC Transport] (buildcraft-A-4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BuildCraft|Silicon{4.0.2} [BC Silicon] (buildcraft-A-4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    APUnofficial{${env.AP_VERSION}} [Additional Pipes] (AdditionalPipes2.4.0-BC4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    AppliedEnergistics{rv13.c} [Applied Energistics] (appeng-rv13-c-mc162.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BiblioCraft{1.4.1} [BiblioCraft] (BiblioCraft[v1.4.1].zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    IC2{2.0.226-experimental} [IndustrialCraft 2] (industrialcraft-2_2.0.226-experimental.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    Forestry{2.3.0.1} [Forestry for Minecraft] (forestry-A-2.3.0.1.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BiblioWoodsForestry{1.2} [BiblioWoods Forestry Edition] (BiblioWoods[Forestry][v1.2].zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BuildCraft|Builders{4.0.2} [BC Builders] (buildcraft-A-4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    BuildCraft|Energy{4.0.2} [BC Energy] (buildcraft-A-4.0.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    Additional-Buildcraft-Objects{1.0.6.172} [Additional Buildcraft Objects] (buildcraft-Z-additional-buildcraft-objects-1.0.6.172.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    CarpentersBlocks{v1.9} [Carpenter's Blocks] (Carpenter's Blocks v1.9 - MC 1.6+.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    ChickenChunks{1.3.3.2} [ChickenChunks] (ChickenChunks 1.3.3.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    ComputerCraft{1.56} [ComputerCraft] (ComputerCraft1.56.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    CCTurtle{1.56} [ComputerCraft Turtles] (ComputerCraft1.56.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    DenPipes{2.1.11} [DenPipes] (DenPipes-1.6.2-2.1.11.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    eplus{1.16.4} [Enchanting Plus] (EnchantingPlus-1.16.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    EnderIO{0.1.25} [Ender IO] (EnderIO-1.6.2-0.1.25.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    EnderStorage{1.4.3.3} [EnderStorage] (EnderStorage 1.4.3.3.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    ExtraUtilities{0.3 prerelease 3a} [Extra Utilities] (extrautils - 0.3 Prerelease 3a.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    flatsigns{1.4.0} [Flat Signs] (flatsigns-1.6.2-universal-1.4.0.15.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    guilib{1.0.6} [GUI Library] (Forge_GuiLibv1.0.6.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NBTEdit{1.6.2.0} [In-game NBTEdit] (Forge_NBTEditv1.6.2.0.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    PaintingSelGui{1.6.2.3} [PaintingSelectionGui] (Forge_PaintingSelectionGuiv1.6.2.3.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    GregsLighting{1.9.0} [Greg's Lighting] (GregsLighting-1.9.0-mc1.6.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    IC2NuclearControl{1.6.2c} [Nuclear Control] (IC2NuclearControl-1.6.2c-ic2-experimental.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    ImmibisCore{56.0.5} [Immibis Core] (immibis-core-56.0.5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    inventorytweaks{1.56} [Inventory Tweaks] (InventoryTweaks-MC1.6.2-1.56-b77.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    IronChest{5.4.1.587} [Iron Chest] (ironchest-universal-1.6.4-5.4.1.587.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    lloverlay{0.18} [Light Level Overlay] (lloverlay-v0.18-1.6.2-9.10.0.789-forge.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    LogisticsPipes|Main{0.7.4.dev.31} [Logistics Pipes] (LogisticsPipes-MC1.6.2-0.7.4.dev.31.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIAddons{1.9.0.r40} [NEI Addons] (neiaddons-1.6.2-1.9.0.r40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIAddons|AE{1.9.0.r40} [NEI Addons: Applied Energistics] (neiaddons-1.6.2-1.9.0.r40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIAddons|CraftingTables{1.9.0.r40} [NEI Addons: Crafting Tables] (neiaddons-1.6.2-1.9.0.r40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIAddons|ExtraBees{1.9.0.r40} [NEI Addons: Extra Bees] (neiaddons-1.6.2-1.9.0.r40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIAddons|Forestry{1.9.0.r40} [NEI Addons: Forestry] (neiaddons-1.6.2-1.9.0.r40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIAddons|MiscPeripherals{1.9.0.r40} [NEI Addons: Misc Peripherals] (neiaddons-1.6.2-1.9.0.r40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    NEIPlugins{1.1.0.0} [NEI Plugins] (NEIPlugins-1.1.0.0pre1.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    PaintingsMod{1.5.2} [Painitngs++] (Paintings++ 1.6.2 v4.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    Railcraft{8.0.2.0} [Railcraft] (Railcraft_1.6.2-8.0.2.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    RedLogic{56.1.1} [RedLogic] (redlogic-56.1.1.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    JAKJ_RedstoneInMotion{2.2.0.0} [Redstone In Motion] (RedstoneInMotion_2.2.0.0_mc1.6.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    TConstruct{1.6.2_1.4.5d4} [Tinkers' Construct] (TConstruct_1.6.2_1.4.5d5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    TConstruct|CompatMineFactoryReloaded{0.1} [TConstruct Compat: MFR] (TConstruct_1.6.2_1.4.5d5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    TelePipes{1.0.0} [Teleport Pipes] (TeleportPipes-Pre1c.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    Waila{1.3.9} [Waila] (Waila_1.3.9_1.6.2.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    ForgeMultipart{1.0.0.151} [Forge Multipart] (ForgeMultipart-universal-1.6.2-1.0.0.151.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    WR-CBE|Core{1.4.0.5} [WR-CBE Core] (WR-CBE 1.4.0.5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    WR-CBE|Addons{1.4.0.5} [WR-CBE Addons] (WR-CBE 1.4.0.5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    WR-CBE|Logic{1.4.0.5} [WR-CBE Logic] (WR-CBE 1.4.0.5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    McMultipart{1.0.0.151} [Minecraft Multipart Plugin] (ForgeMultipart-universal-1.6.2-1.0.0.151.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    ForgeMicroblock{1.0.0.151} [Forge Microblocks] (ForgeMultipart-universal-1.6.2-1.0.0.151.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 209 (11704 bytes; 0 MB) allocated, 202 (11312 bytes; 0 MB) used
    Player Count: 1 / 8; [EntityPlayerMP['Shiraiel'/224, l='Zona de Pruebas', x=-262,50, y=76,03, z=2,13]]
    Type: Integrated Server (map_client.txt)
    Is Modded: Definitely; Client brand changed to 'fml,forge'
Steps To ReproducePlace some solar panels, use glass fiber for wiring, put an old MFSU unit (i dont remember the name in this version) and break the wiring between the MFSU and the solar panels.
Additional InformationUsing IndustrialCraft 2 Experimental 2.0.226 because Railcraft dont work with the stable version.
TagsNo tags attached.
Minecraft Version

Activities

robot256

2013-09-27 01:09

reporter   ~0001578

Out Of Memory error... can you tried increasing the JVM memory from 512MB to 1GB?

derelicthor

2013-09-27 01:24

reporter   ~0001579

Tried with 2Gb, it start to suck all the memory and crash after 1 min.

derelicthor

2013-09-27 06:04

reporter   ~0001580

Last edited: 2013-09-27 06:17

Tried in a new world, making the same thing... Its a problem with the glass fiber cable, i think its the texture rendering or something, when i break a single cable it doesn't dissapear completely and that make the memory suck and crash later.

Im gonna try with a different cable, but it'll be a pain in the ass for my large solar panel complex (many energy lost for it).

BTW, tested with 160 solar panels with their 160 glass fiber cables, MC crash after break just 1 of them.

Edit: with 20-40 solar panels less i can break 1 cable without crash... After take 10-15 secs with my PC fans on fire, memory saying "give me a break dude" and my I5-2500 thinking the same thing. I taked 2 cables away at the same time, worst error ever, autocrash after suck all the memory and make my I5 work more than playing Crysis.

This must be fixed, what its the point of make large cable installations if i must remake the whole map if i miss 1 single cable in a bad spot?

robot256

2013-09-27 12:53

reporter   ~0001581

Yeah, this sounds like a memory leak somewhere in the e-net code, thanks for reporting it. Last question, did you try it with non-glass cable? I think I remember seeing other reports about glass cable specifically, so it would be nice to know for sure there is an issue there.

On a tangential note, how was your solar farm laid out? If you had 160 cable for 160 panels, that makes me think they were in a square grid where the bottom layer was cable the top layer was panels, and all the cables were connecting to each other. Even without the memory leak, this is the most CPU-consuming way to wire it because the e-net code has to essentially solve this problem: http://www.mathpages.com/home/kmath668/kmath668.htm.

It is much better to separate them so the cables go in straight lines and join at only a few points. I like to make my arrays in 3-wide rows, with one line on top of the cable and one line to either side. You can save diamond by using copper cable on the rows (if there is less than 128 solar panels on them) and then have multiple rows feed into a MFE or transformers.

derelicthor

2013-09-27 15:21

reporter   ~0001585

Last edited: 2013-09-27 15:39

My idea is cover the whole roof of my house-base of solar panels for use that space in something usefull. That idea, in a 28x27 house can be a huge quantity of solar panels (650 if maths works), more than those 160 i've tried in a new world.

I'll try with another kind of cable. This is a pic of what im trying to do (worked anyway in 1.4.5 - 4.7 - 5 before take a break of MC).

http://i.imgur.com/WThlOMN.jpg

BTW, 1 question: Is possible to "disconnect" cables? I mean, like put cobblestone and stone pipes of buildcraft or different colored cables in AE.

Edit: Confirmed, 6 straight lines of 25 cables together (150) are enough for make a crash if i destroy a single one of them. Tried with HV cables.

I'll try making 3 lines-1 space-3 lines more and look what happen.

derelicthor

2013-09-27 16:59

reporter   ~0001586

Tried this with copper cables in a new world, works perfect when i break anything in any spot, ok.
Tried the same in my old world, memory leak and crash, just epic.

http://i.imgur.com/kT0WUy1.jpg

Im gonna try to remake the world and the house (again -.-U) and try again.

robot256

2013-09-27 17:31

reporter   ~0001587

Last edited: 2013-09-27 17:31

Try building it in long strings with cross-sections like this, and have them come together at a CESU or something:

(air) (panel) (air)
(panel) (cable) (panel)

It's not a perfectly flat surface, but it gives the roof character and uses a lot less cable. Solar panels are usually mounted at angles anyways.

derelicthor

2013-09-27 18:26

reporter   ~0001588

Last edited: 2013-09-27 18:30

The last thing i've tried is this:

http://i.imgur.com/9uwVsrr.jpg

It works... More or less. If i break something near the green area nothing bad happen, ok.
If i break something in the yellow area it take 2-3 secs and suck some memory, but it get stabilized after that, ok np.
Same for the red area, 2-3 secs, some memory leak and stabilize after that.

For now im gonna use this setting, no crashes no problem, but like i said... This worked perfectly in 1.4 and 1.5, maybe its a 1.6 problem or maybe its for the experimental build... IDK, but its a real pain in the ass.

Edit: The area with the MFSU is the green area.
http://i.imgur.com/Kkq2gwh.jpg

robot256

2013-09-28 06:05

reporter   ~0001626

Thanks for giving us more information.

You still haven't tried what I suggested, which is to completely eliminate any place that the cables make a square with themselves. Which you do by changing your three-wide rows so that the outer rows are *down next to* the cable instead of on top of it (each cable connects to three panels and two other cables, instead of one panel and four other cables). But I won't argue that it's still a pain in the ass.

adrake

2013-12-28 07:15

reporter   ~0002009

I spent some time debugging this today. In ic2.core.energy.Grid in 'void remove(Node node)' there's a breadth-first-search of the grid starting from the removed node (the bit with connectedNodes and nodesToCheck).

The loop maintains a visited HashSet (connectedNodes) but only updates this list when a node is visited. If two nodes A and B share a neighbor C, and A and B are in nodesToCheck, then C will be added to the queue twice. Once that happens, all of C's neighbors will be added twice, and the situation multiplies. In a grid this can happen relatively easily, and from my own experiments only 500 nodes (250 solar + 250 copper) are needed to consume gigabytes of RAM with duplicated entries in the nodesToCheck list.

The fix is to add the node to connectedNodes before adding the node to nodesToCheck. This guarantees each node will be visited exactly once and resolves this issue. I made the change in bytecode locally (I just moved the .add call down to the if !connectedNodes.contains block) and confirmed that the issue no longer occurs. I'd send a patch if I could :)

adrake

2013-12-28 07:49

reporter   ~0002010

To clarify, I added "connectedNodes.add(nNode)" before "nodesToCheck.add(nNode)" and removed the call to "connectedNodes.add(cNode)" (since it's now redundant). I also added a call to add the initial node to connectedNodes.

Thunderdark

2014-06-26 15:24

viewer   ~0002636

cleanup campaign close all reports > 6 months

Issue History

Date Modified Username Field Change
2013-09-27 01:01 derelicthor New Issue
2013-09-27 01:09 robot256 Note Added: 0001578
2013-09-27 01:24 derelicthor Note Added: 0001579
2013-09-27 06:04 derelicthor Note Added: 0001580
2013-09-27 06:17 derelicthor Note Edited: 0001580
2013-09-27 12:53 robot256 Note Added: 0001581
2013-09-27 15:21 derelicthor Note Added: 0001585
2013-09-27 15:25 derelicthor Note Edited: 0001585
2013-09-27 15:39 derelicthor Note Edited: 0001585
2013-09-27 16:59 derelicthor Note Added: 0001586
2013-09-27 17:31 robot256 Note Added: 0001587
2013-09-27 17:31 robot256 Note Edited: 0001587
2013-09-27 18:26 derelicthor Note Added: 0001588
2013-09-27 18:30 derelicthor Note Edited: 0001588
2013-09-28 06:05 robot256 Note Added: 0001626
2013-12-28 07:15 adrake Note Added: 0002009
2013-12-28 07:49 adrake Note Added: 0002010
2014-06-26 15:24 Thunderdark Note Added: 0002636
2014-06-26 15:24 Thunderdark Status new => closed