PaperMC/Spigot-Server-Patches/0124-Fix-Massive-Memory-Leak.patch
Aikar 0ba94906ad Fix Massive Memory Leak
Pathfinder objects are storing references to ChunkCache's, and never cleaning up.

These ChunkCache's then leak other entity objects. Those entity objects then have leaks to their
own chunk cache. A recursive problem....

Clean up the ChunkCache reference after it is done being used.
2016-03-31 19:08:27 -04:00

28 lines
1.1 KiB
Diff

From a4e295c985a50926d5e66a184fc764f4aa301d6a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 31 Mar 2016 19:06:47 -0400
Subject: [PATCH] Fix Massive Memory Leak
Pathfinder objects are storing references to ChunkCache's, and never cleaning up.
These ChunkCache's then leak other entity objects. Those entity objects then have leaks to their
own chunk cache. A recursive problem....
Clean up the ChunkCache reference after it is done being used.
diff --git a/src/main/java/net/minecraft/server/PathfinderAbstract.java b/src/main/java/net/minecraft/server/PathfinderAbstract.java
index d579577..40e5b4d 100644
--- a/src/main/java/net/minecraft/server/PathfinderAbstract.java
+++ b/src/main/java/net/minecraft/server/PathfinderAbstract.java
@@ -23,7 +23,7 @@ public abstract class PathfinderAbstract {
this.f = MathHelper.d(entityinsentient.width + 1.0F);
}
- public void a() {}
+ public void a() {this.a = (IBlockAccess) null;} // Paper - Fix massive memory leak. Intentionally casting to ensure compile error if obfuscation changes
protected PathPoint a(int i, int j, int k) {
int l = PathPoint.b(i, j, k);
--
2.8.0