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