ldtteam / Aequivaleo

Analysis engine and mediator mod for analyzing recipes and equivalencies of items, blockstates and other game objects in minecraft.
GNU General Public License v3.0
5 stars 4 forks source link

Memory Leak with Mine Colonies #24

Open Murdermancer opened 2 years ago

Murdermancer commented 2 years ago

When Aequivaleo aequivaleo-1.18.2-0.1.94-ALPHA-universal is run with Mine Colonies, there's a memory leak that will eventually consume all available allocated RAM. (I have 8GB allocated, and it will use all of that until java crashes.)

If I remove Aequivaleo, memory usage returns to normal.

From the Java Memory Analyzer tool: Thread Stack Aequivaleo analysis runner: 1 at java.util.ArrayList.indexOfRange(Ljava/lang/Object;II)I (ArrayList.java:298) at java.util.ArrayList.indexOf(Ljava/lang/Object;)I (ArrayList.java:286) at java.util.ArrayList.contains(Ljava/lang/Object;)Z (ArrayList.java:275) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:172) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.circuit(Ljava/lang/Integer;I)Z (HawickJamesSimpleCycles.java:158) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.analyzeCircuits()V (HawickJamesSimpleCycles.java:288) at com.ldtteam.shaded.jgrapht.alg.cycle.HawickJamesSimpleCycles.findSimpleCycles()Ljava/util/List; (HawickJamesSimpleCycles.java:234) at com.ldtteam.aequivaleo.analysis.jgrapht.cycles.JGraphTCyclesReducer.reduceOnce(Lcom/ldtteam/shaded/jgrapht/Graph;)Z (JGraphTCyclesReducer.java:56) at com.ldtteam.aequivaleo.analysis.jgrapht.cycles.JGraphTCyclesReducer.reduce(Lcom/ldtteam/shaded/jgrapht/Graph;)V (JGraphTCyclesReducer.java:47) at com.ldtteam.aequivaleo.analysis.JGraphTBasedCompoundAnalyzer.reduceGraph(Lcom/ldtteam/aequivaleo/analysis/jgrapht/aequivaleo/IGraph;Lcom/ldtteam/aequivaleo/analysis/jgrapht/node/SourceNode;)Lcom/ldtteam/aequivaleo/analysis/jgrapht/aequivaleo/IGraph; (JGraphTBasedCompoundAnalyzer.java:241) at com.ldtteam.aequivaleo.analysis.JGraphTBasedCompoundAnalyzer.calculate()V (JGraphTBasedCompoundAnalyzer.java:289) at com.ldtteam.aequivaleo.analysis.JGraphTBasedCompoundAnalyzer.calculateAndGet()Ljava/util/Map; (JGraphTBasedCompoundAnalyzer.java:431) at com.ldtteam.aequivaleo.analysis.AequivaleoReloadListener$AequivaleoWorldAnalysisRunner.reloadEquivalencyData()V (AequivaleoReloadListener.java:692) at com.ldtteam.aequivaleo.analysis.AequivaleoReloadListener$AequivaleoWorldAnalysisRunner.run()V (AequivaleoReloadListener.java:647) at java.util.concurrent.CompletableFuture$AsyncRun.run()V (CompletableFuture.java:1804) at java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V (ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run()V (ThreadPoolExecutor.java:635) at java.lang.Thread.run()V (Thread.java:833)