View Issue Details

IDProjectCategoryView StatusLast Update
0001948Industrial-Craft²E-Net, cabling, storage/transformer blockspublic2016-08-10 17:57
ReporterDoughnutDevAssigned ToAroma1997 
PriorityimmediateSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
PlatformOSWindowsOS Version10
Product Version 
Target VersionFixed in Version 
Summary0001948: at ic2.core.energy.leg.EnergyNetLocalLeg.tickStart(EnergyNetLocalLeg.java:162)
DescriptionEverytime I join this happens http://hastebin.com/ehirotumij.coffee
Steps To ReproduceJust have a MFE, LV-Transformer, MV-Transformer, Macerator, Compressor, and Furnace
TagsNo tags attached.
Minecraft Version1.10.2

Relationships

duplicate of 0001923 resolvedAroma1997 java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification 

Activities

DoughnutDev

2016-08-01 18:08

reporter   ~0004655

So I did some research on the issue and it seems it is Mekanism. After I added it. The issue started.

Redlotus99

2016-08-02 19:59

reporter   ~0004663

Last edited: 2016-08-02 20:11

View 3 revisions

I too am having this issue. I wanted to reference the same issue that was mentioned in Mekanism.

https://github.com/aidancbrady/Mekanism/issues/3580

Oddly, I am only getting this crash in one or two particular chunks right now. At a base of one of my players if any player enters either of these chunks the server crashes. If we avoid those chunks the server runs as intended.

etherealflux

2016-08-02 21:13

reporter   ~0004664

Last edited: 2016-08-02 21:17

View 3 revisions

Judging from what I'm seeing after decompiling and inspecting the source code, Mekanism is (indirectly, since it's private) invoking the markBlockForUpdate() method of EnergyNetLocalLeg while the tickStart() method is running, which involves iteration over blocksToUpdate. Adding something to that set while iteration is going on will result in the ConcurrentModificationException.

I'm trying to figure out where that invocation happens, though. You've got addTileEntity synchronized, for example, and tickStart() is also sync'd.

I'm rusty with async Java, but you might be able to prevent this if you copy the contents from blocksToUpdate into a new HashSet inside tickStart(), then iterate over that. Any new update requests can go into blocksToUpdate for the next tick.

DoughnutDev

2016-08-02 21:38

reporter   ~0004665

Setting this B:BlacklistIC2Power=false to B:BlacklistIC2Power=true gets rid of the crash.

Kris1432

2016-08-10 13:10

reporter   ~0004693

DoughnutDev, you sir are a life saver. This has been causing issues on my server for a few weeks now with endless problems. Thanks for the help!

Redlotus99

2016-08-10 13:56

reporter   ~0004694

I updated Mekanism and IC2 with their latest updates and reset my map and no longer get this issue.

Aroma1997

2016-08-10 17:57

developer   ~0004695

The issues weren't marked as duplicates, which is why I didn't resolve this issue here.
I tentatively fixed it. It now logs an error message in the log file. I would appreciate, if someone could give me back a log file of where it would normally happen.

Issue History

Date Modified Username Field Change
2016-08-01 02:28 DoughnutDev New Issue
2016-08-01 18:08 DoughnutDev Note Added: 0004655
2016-08-02 19:59 Redlotus99 Note Added: 0004663
2016-08-02 19:59 Redlotus99 Note Edited: 0004663 View Revisions
2016-08-02 20:11 Redlotus99 Note Edited: 0004663 View Revisions
2016-08-02 21:13 etherealflux Note Added: 0004664
2016-08-02 21:13 etherealflux Note Edited: 0004664 View Revisions
2016-08-02 21:17 etherealflux Note Edited: 0004664 View Revisions
2016-08-02 21:38 DoughnutDev Note Added: 0004665
2016-08-10 13:10 Kris1432 Note Added: 0004693
2016-08-10 13:56 Redlotus99 Note Added: 0004694
2016-08-10 17:56 Aroma1997 Relationship added duplicate of 0001923
2016-08-10 17:57 Aroma1997 Note Added: 0004695
2016-08-10 17:57 Aroma1997 Status new => resolved
2016-08-10 17:57 Aroma1997 Resolution open => fixed
2016-08-10 17:57 Aroma1997 Assigned To => Aroma1997