java - JRubyClassLoader not getting released -


We are running a small JRB on a rail app under the touch-based backend, under Tomcat 6.0.28. I have spent some time with the Eclipse Memory Analysis Tool and I can definitely tell that the leak of JRubyClassLoader is that I set up our webpage to use only one JRUB runtime and then I used to effectively do a hot deployment on the Tomk by the touch for the war. After doing so many times, I can see many examples of sitting around the JRubyClassLoader .

Since the classloader is not being released, the loaded squares are not being released and we are running out of PermGen space

By using eclipse memory analysis, See route path like:

  org.jruby.util.JRubyClassLoader jrubyClassLoader org.jruby.Ruby Runtime ORG. Jruby.util.io.ChannelStream reference java.lang.ref.Finalizer next java.lang.ref.Finalizer  

and next java.lang.ref.Finalizer appears to go forever ... to indicate that I can not find the actual GC root.

If you run a leak suspect report, then # 1 questionable

Any ideas why the finalists are sticking around?

EDIT

/ Strong>

Probably as a side note, whenever I do hot deployment I, then NullPointerExceptions :

  java.java.lang.ref.Finalizer.invokeFinalizeMethod on Java.lang.ref.Finalizer.run com.kenai (Basic method) .lang.NullPointerException at .jffi.function.finalize (function.java.177) Final adder on Java.lang.ref.finalizer.access (Finalizer.java: 83) $ 100 on java.lang.ref (FIelizer.Java 14) Fanlizer $ Filler Thread.Run (Fieilizer.Java Type 60)  

Edit 2

I JRUB 1.5 I have upgraded to 1 and I still see the same problems.

should go.

It is not your fault and you can not do much about it.

Perhaps try to drop the JRuby team () to try? Instead of waiting for GRB to wait till GC should take care of resource delocution as soon as possible? Developers using JRuby are not interfering with these objects, all of which are under JRuby's control.


Comments