mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 23:38:25 +01:00
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.
This commit is contained in:
parent
0a01580011
commit
8b77debaf3
2 changed files with 27 additions and 0 deletions
26
Spigot-Server-Patches/Fix-Massive-Memory-Leak.patch
Normal file
26
Spigot-Server-Patches/Fix-Massive-Memory-Leak.patch
Normal file
|
@ -0,0 +1,26 @@
|
|||
From 0000000000000000000000000000000000000000 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/PathfinderAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/PathfinderAbstract.java
|
||||
@@ -0,0 +0,0 @@ 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);
|
||||
--
|
|
@ -54,6 +54,7 @@ import PacketPlayInResourcePackStatus
|
|||
import PacketPlayOutPlayerListHeaderFooter
|
||||
import PacketPlayOutTitle
|
||||
import PacketPlayOutUpdateTime
|
||||
import PathfinderAbstract
|
||||
import PathfinderGoalFloat
|
||||
import PersistentVillage
|
||||
import TileEntityEnderChest
|
||||
|
|
Loading…
Reference in a new issue