Jaffl getpid issue ------------------- Key: JRUBY-4847 URL: http://jira.codehaus.org/browse/JRUBY-4847 Project: JRuby Issue Type: Bug Affects Versions: JRuby 1.5 Environment: Centos 5.4 (Linux 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux) Java version "1.6.0_17" Java(TM) SE Runtime Environment (build 1.6.0_17-b04) Java HotSpot(TM) Server VM (build 14.3-b01, mixed mode) Reporter: Yogi Assignee: Thomas E Enebo
Splitting this issue from http://jira.codehaus.org/browse/JRUBY-4766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel, on Charles' request. We're seeing another, possibly related issue, when file fragment caching is turned on in Rails (with Yourkit profiling enabled): com.kenai.jaffl.provider.jffi.DefaultInvokerFactory$DefaultInvoker.marshal(DefaultInvokerFactory.java:331) com.kenai.jaffl.provider.jffi.DefaultInvokerFactory$DefaultInvoker.invoke(DefaultInvokerFactory.java:338) com.kenai.jaffl.provider.NativeInvocationHandler.invoke(NativeInvocationHandler.java:110) $Proxy8.getpid(Unknown Source) org.jruby.ext.posix.BaseNativePOSIX.getpid(BaseNativePOSIX.java:79) org.jruby.ext.posix.LazyPOSIX.getpid(LazyPOSIX.java:107) org.jruby.RubyGlobal$PidAccessor.getValue(RubyGlobal.java:681) org.jruby.internal.runtime.ReadonlyAccessor.getValue(ReadonlyAccessor.java:51) org.jruby.internal.runtime.GlobalVariables.get(GlobalVariables.java:111) org.jruby.RubyTempfile.make_tmpname(RubyTempfile.java:199) org.jruby.RubyTempfile$i_method_2_0$RUBYFRAMEDINVOKER$make_tmpname.call(org/jruby/RubyTempfile$i_method_2_0$RUBYFRAMEDINVOKER$make_tmpname.gen:65535) org.jruby.internal.runtime.methods.JavaMethod$JavaMethodTwoBlock.call(JavaMethod.java:568) org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:160) org.jruby.RubyClass.finvoke(RubyClass.java:644) org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:461) org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:340) org.jruby.RubyTempfile.initialize(RubyTempfile.java:124) org.jruby.RubyTempfile$i_method_0_1$RUBYFRAMEDINVOKER$initialize.call(org/jruby/RubyTempfile$i_method_0_1$RUBYFRAMEDINVOKER$initialize.gen:65535) org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:269) org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:77) org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:82) org.jruby.RubyClass.newInstance(RubyClass.java:769) org.jruby.RubyIO.newInstance(RubyIO.java:865) ... There wasn't much more information in the logs. From the stacktrace it seems that RubyTempfile.new is throwing this exception when calling runtime.getGlobalVariables().get("$$"). And it started occuring now only because we turned on the file-based cache store in Rails, which calls File.atomic_write, which in turn calls RubyTempfile. The error stopped occurring when I disabled Yourkit. So far the Yourkit bytecode issue was not preventing the server from starting up nor causing runtime errors, but this is preventing a view from rendering, so we'll need to workaround it by not using the FileStore or by disabling Yourkit agent. -Yogi -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email