Python-Plugin-Loader icon indicating copy to clipboard operation
Python-Plugin-Loader copied to clipboard

PermGen leak when reloading multiple times

Open IonAgorria opened this issue 12 years ago • 2 comments

When you reload multiple times PermGen gets leaked and server crashes

reload 16:29:44 [INFO] [DEBUG] [PyOreWatcher]('OreWatcher Deshabilitado',) 16:29:44 [INFO] [PythonLoader] Disabling PythonLoader v0.3.4 16:29:44 [INFO] 229 recipes 16:29:44 [INFO] [PythonLoader] Loading PythonLoader v0.3.4 16:29:44 [INFO] [PythonLoader] Loading Plugin PyOreWatcher.py.dir 16:29:46 [SEVERE] org.bukkit.plugin.InvalidPluginException: Traceback (most recent call last): File "", line 50, in java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) at org.bukkit.plugin.java.JavaPluginLoader.getClassByName0(JavaPluginLoader.java:300) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:76) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at org.python.core.adapter.ClassicPyObjectAdapter$9.adapt(ClassicPyObjectAdapter.java:102) at org.python.core.adapter.ExtensiblePyObjectAdapter.adapt(ExtensiblePyObjectAdapter.java:49) at org.python.core.adapter.ClassicPyObjectAdapter.adapt(ClassicPyObjectAdapter.java:120) at org.python.core.Py.java2py(Py.java:1563) at org.python.proxies.main$OreWatcherClass$0.classDictInit(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.python.core.PyJavaType.init(PyJavaType.java:534) at org.python.core.PyType.createType(PyType.java:1264) at org.python.core.PyType.addFromClass(PyType.java:1201) at org.python.core.PyType.fromClass(PyType.java:1291) at org.python.core.PyType.setupProxy(PyType.java:636) at org.python.core.PyType.newType(PyType.java:196) at org.python.core.PyType.type___new__(PyType.java:150) at org.python.core.PyType$exposed___new__.new_impl(Unknown Source)

java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: PermGen space

16:29:46 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:296) 16:29:46 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:113) 16:29:46 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:83) 16:29:46 [SEVERE] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305) 16:29:46 [SEVERE] at com.master.bukkit.python.PythonLoader.onLoad(PythonLoader.java:113) 16:29:46 [SEVERE] at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:244) 16:29:46 [SEVERE] at org.bukkit.craftbukkit.v1_5_R3.CraftServer.reload(CraftServer.java:603) 16:29:46 [SEVERE] at org.bukkit.Bukkit.reload(Bukkit.java:185) 16:29:46 [SEVERE] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) 16:29:46 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189) 16:29:46 [SEVERE] at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523) 16:29:46 [SEVERE] at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchServerCommand(CraftServer.java:512) 16:29:46 [SEVERE] at net.minecraft.server.v1_5_R3.DedicatedServer.an(DedicatedServer.java:262) 16:29:46 [SEVERE] at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227) 16:29:46 [SEVERE] at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477) 16:29:46 [SEVERE] at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410) 16:29:46 [SEVERE] at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) 16:29:46 [SEVERE] Caused by: Traceback (most recent call last): File "", line 50, in java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) at org.bukkit.plugin.java.JavaPluginLoader.getClassByName0(JavaPluginLoader.java:300) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:76) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at org.python.core.adapter.ClassicPyObjectAdapter$9.adapt(ClassicPyObjectAdapter.java:102) at org.python.core.adapter.ExtensiblePyObjectAdapter.adapt(ExtensiblePyObjectAdapter.java:49) at org.python.core.adapter.ClassicPyObjectAdapter.adapt(ClassicPyObjectAdapter.java:120) at org.python.core.Py.java2py(Py.java:1563) at org.python.proxies.main$OreWatcherClass$0.classDictInit(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.python.core.PyJavaType.init(PyJavaType.java:534) at org.python.core.PyType.createType(PyType.java:1264) at org.python.core.PyType.addFromClass(PyType.java:1201) at org.python.core.PyType.fromClass(PyType.java:1291) at org.python.core.PyType.setupProxy(PyType.java:636) at org.python.core.PyType.newType(PyType.java:196) at org.python.core.PyType.type___new__(PyType.java:150) at org.python.core.PyType$exposed___new__.new_impl(Unknown Source)

java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: PermGen space

16:29:46 [SEVERE] at org.python.core.Py.JavaError(Py.java:495) 16:29:46 [SEVERE] at org.python.core.Py.JavaError(Py.java:488) 16:29:46 [SEVERE] at org.python.core.PyJavaType.init(PyJavaType.java:541) 16:29:46 [SEVERE] at org.python.core.PyType.createType(PyType.java:1264) 16:29:46 [SEVERE] at org.python.core.PyType.addFromClass(PyType.java:1201) 16:29:46 [SEVERE] at org.python.core.PyType.fromClass(PyType.java:1291) 16:29:46 [SEVERE] at org.python.core.PyType.setupProxy(PyType.java:636) 16:29:46 [SEVERE] at org.python.core.PyType.newType(PyType.java:196) 16:29:46 [SEVERE] at org.python.core.PyType.type___new__(PyType.java:150) 16:29:46 [SEVERE] at org.python.core.PyType$exposed___new__.new_impl(Unknown Source) 16:29:46 [SEVERE] at org.python.core.PyType.invokeNew(PyType.java:466) 16:29:46 [SEVERE] at org.python.core.PyType.type___call__(PyType.java:1558) 16:29:46 [SEVERE] at org.python.core.PyType.call(PyType.java:1548) 16:29:46 [SEVERE] at org.python.core.PyObject.call(PyObject.java:422) 16:29:46 [SEVERE] at org.python.core.Py.makeClass(Py.java:1653) 16:29:46 [SEVERE] at org.python.core.Py.makeClass(Py.java:1614) 16:29:46 [SEVERE] at org.python.core.Py.makeClass(Py.java:1606) 16:29:46 [SEVERE] at org.python.pycode.pyx5.f$0(:66) 16:29:46 [SEVERE] at org.python.pycode.pyx5.call_function() 16:29:46 [SEVERE] at org.python.core.PyTableCode.call(PyTableCode.java:165) 16:29:46 [SEVERE] at org.python.core.PyCode.call(PyCode.java:18) 16:29:46 [SEVERE] at org.python.core.Py.runCode(Py.java:1275) 16:29:46 [SEVERE] at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:235) 16:29:46 [SEVERE] at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:230) 16:29:46 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:244) 16:29:46 [SEVERE] ... 16 more 16:29:46 [SEVERE] Caused by: java.lang.OutOfMemoryError: PermGen space 16:29:46 [SEVERE] at java.lang.ClassLoader.defineClass1(Native Method) 16:29:46 [SEVERE] at java.lang.ClassLoader.defineClass(ClassLoader.java:791) 16:29:46 [SEVERE] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 16:29:46 [SEVERE] at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 16:29:46 [SEVERE] at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 16:29:46 [SEVERE] at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 16:29:46 [SEVERE] at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 16:29:46 [SEVERE] at java.security.AccessController.doPrivileged(Native Method) 16:29:46 [SEVERE] at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 16:29:46 [SEVERE] at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) 16:29:46 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.getClassByName0(JavaPluginLoader.java:300) 16:29:46 [SEVERE] at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:76) 16:29:46 [SEVERE] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) 16:29:46 [SEVERE] at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 16:29:46 [SEVERE] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 16:29:46 [SEVERE] at org.python.core.adapter.ClassicPyObjectAdapter$9.adapt(ClassicPyObjectAdapter.java:102) 16:29:46 [SEVERE] at org.python.core.adapter.ExtensiblePyObjectAdapter.adapt(ExtensiblePyObjectAdapter.java:49) 16:29:46 [SEVERE] at org.python.core.adapter.ClassicPyObjectAdapter.adapt(ClassicPyObjectAdapter.java:120) 16:29:46 [SEVERE] at org.python.core.Py.java2py(Py.java:1563) 16:29:46 [SEVERE] at org.python.proxies.main$OreWatcherClass$0.classDictInit(Unknown Source) 16:29:46 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 16:29:46 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 16:29:46 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 16:29:46 [SEVERE] at java.lang.reflect.Method.invoke(Method.java:601) 16:29:46 [SEVERE] at org.python.core.PyJavaType.init(PyJavaType.java:534) 16:29:46 [SEVERE] at org.python.core.PyType.createType(PyType.java:1264) 16:29:46 [SEVERE] at org.python.core.PyType.addFromClass(PyType.java:1201) 16:29:48 [SEVERE] at org.python.core.PyType.fromClass(PyType.java:1291) 16:29:55 [SEVERE] at org.python.core.PyType.setupProxy(PyType.java:636) 16:30:02 [SEVERE] at org.python.core.PyType.newType(PyType.java:196) 16:30:08 [SEVERE] at org.python.core.PyType.type___new(PyType.java:150) 16:30:09 [SEVERE] at org.python.core.PyType$exposed___new__.new_impl(Unknown Source)

IonAgorria avatar May 15 '13 14:05 IonAgorria

Note that I no longer actively work on this project; however, if I did, I'd be inclined to say "will not fix - reloading is a broken concept". I'll leave it up to masteroftime, though.

lahwran avatar May 16 '13 01:05 lahwran

Run the server with more ram or run GE

wgaylord avatar Oct 08 '13 19:10 wgaylord