Issue Details (XML | Word | Printable)

Key: JRUBY-3015
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Charles Oliver Nutter
Reporter: Le Huy
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
JRuby

JRuby is not working on IBM JVM 1.5

Created: 25/Sep/08 04:20 AM   Updated: 12/Jan/09 04:28 PM   Resolved: 05/Oct/08 10:46 PM
Return to search
Component/s: None
Affects Version/s: JRuby 1.1.4
Fix Version/s: JRuby 1.1.5

Time Tracking:
Not Specified

Environment: AIX 5L, JAVA5


 Description  « Hide

bash-3.00$ /usr/java5/bin/java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pap32dev-20051104)
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20051103 (JIT enabled)
J9VM - 20051027_03723_bHdSMR
JIT - 20051027_1437_r8
GC - 20051020_AA)
JCL - 20051102

bash-3.00$ jruby --version
jruby 1.1.4 (ruby 1.8.6 patchlevel 114) (2008-08-28 rev 7570) [ppc-java]
java.lang.VerifyError: arguments are not type compatible (class: org/jruby/RubyEnumerator$i_method_1_0$RUBYINVOKER$initialize method: call(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject at pc: 6
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:42)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:111)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:63)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:521)
at org.jruby.internal.runtime.methods.InvocationMethodFactory.getAnnotatedMethod(InvocationMethodFactory.java:661)
at org.jruby.RubyModule.defineAnnotatedMethod(RubyModule.java:732)
at org.jruby.RubyModule.defineAnnotatedMethod(RubyModule.java:475)
at org.jruby.RubyEnumerator.defineEnumerator(RubyEnumerator.java:75)
at org.jruby.libraries.EnumeratorLibrary.load(EnumeratorLibrary.java:39)
at org.jruby.ext.LateLoadingLibrary.load(LateLoadingLibrary.java:55)
at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:331)
at org.jruby.runtime.load.LoadService.require(LoadService.java:357)
at org.jruby.Ruby.initBuiltins(Ruby.java:1253)
at org.jruby.Ruby.init(Ruby.java:917)
at org.jruby.Ruby.newInstance(Ruby.java:161)
at org.jruby.Main.run(Main.java:184)
at org.jruby.Main.run(Main.java:100)
at org.jruby.Main.main(Main.java:84)
Exception in thread "main" :1: library `enumerator' could not be loaded: java.lang.VerifyError: arguments are not type compatible (class: org/jruby/RubyEnumerator$i_method_1_0$RUBYINVOKER$initialize method: call(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject at pc: 6 (LoadError)
...internal jruby stack elided...
from (unknown).(unknown)(:1)



Le Huy added a comment - 25/Sep/08 06:14 AM

JRuby version 1.1.3 also has the same error
I can run JRuby version 1.1 however then jirb does not work but this is other error


Wolfgang added a comment - 26/Sep/08 02:54 AM

We notice a similar behaviour:

                        • Start Display Current Environment ************
                          WebSphere Platform 6.1 [BASE 6.1.0.19 cf190836.04] [WEBSERVICES 6.1.0.19 cf190834.03] running with process name
                          Host Operating System is Windows XP, version 5.1 build 2600 Service Pack 3
                          Java version = J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20071007 (JIT enabled)

After deploying a jruby 1.1.4 project (packed with warbler) we got following exception:

[25.09.08 15:48:54:939 CEST] 00000027 ServletWrappe E SRVE0068E: Es wurde eine Ausnahme angefangen, die in einer der Servicemethoden des Servlet Rails ausgelöst wurde. Ausgelöste Ausnahme: java.lang.ClassFormatError: (InterfaceImpl-571218939) class name is invalid at offset=0
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:256)
at org.jruby.util.JRubyClassLoader.defineClass(JRubyClassLoader.java:22)
at org.jruby.java.MiniJava.defineOldStyleImplClass(MiniJava.java:510)
at org.jruby.java.MiniJava.createOldStyleImplClass(MiniJava.java:193)
at org.jruby.javasupport.Java.new_proxy_instance2(Java.java:1587)
at org.jruby.java.proxies.JavaInterfaceTemplate.jcreateProxy(JavaInterfaceTemplate.java:256)
at org.jruby.java.proxies.JavaInterfaceTemplate.access$000(JavaInterfaceTemplate.java:23)
at org.jruby.java.proxies.JavaInterfaceTemplate$3.call(JavaInterfaceTemplate.java:163)
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodNoBlock.call(JavaMethod.java:62)
at org.jruby.RubyClass.finvoke(RubyClass.java:343)
at org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:335)
at org.jruby.java.proxies.JavaInterfaceTemplate$2.call(JavaInterfaceTemplate.java:147)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:242)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:151)
at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:156)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:394)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:253)
at org.jruby.RubyClass.finvoke(RubyClass.java:458)
at org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:342)
at org.jruby.RubyObject.callMethod(RubyObject.java:700)
at org.jruby.javasupport.JavaEmbedUtils$1.callMethod(JavaEmbedUtils.java:133)
at org.jruby.rack.DefaultRackApplication.__call(DefaultRackApplication.java:64)
at org.jruby.rack.DefaultRackApplication.call(DefaultRackApplication.java:44)
at org.jruby.rack.DefaultRackDispatcher.process(DefaultRackDispatcher.java:32)
at org.jruby.rack.RackServlet.service(RackServlet.java:42)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1095)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:569)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3440)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1461)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:118)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)


Charles Oliver Nutter added a comment - 26/Sep/08 11:29 AM

Looking into it.


Charles Oliver Nutter made changes - 26/Sep/08 11:29 AM
Field Original Value New Value
Assignee Thomas E Enebo [ enebo ] Charles Oliver Nutter [ headius ]
Charles Oliver Nutter made changes - 26/Sep/08 11:29 AM
Status Open [ 1 ] In Progress [ 3 ]
Charles Oliver Nutter added a comment - 04/Oct/08 06:16 PM

I've fixed the InterfaceImpl thing and another bad test in testYAML and I'm working my way through the test run. Once it's running I'll set up a CI build against it.

i'm using IBM's Java 6. Here's the current issue, in the command-line test:

    [junit] Failure:
    [junit] test_server_vm_option(TestCommandLineSwitches) [/home/headius/jruby/./test/test_command_line_switches.rb:223]:
    [junit] <"j9jit24"> expected to be =~
    [junit] </(tiered|server)/>.
    [junit] 
    [junit] junit.framework.AssertionFailedError: Faults encountered running test/test_command_line_switches, complete output follows:
    [junit] Failure:
    [junit] test_client_vm_option(TestCommandLineSwitches) [/home/headius/jruby/./test/test_command_line_switches.rb:242]:
    [junit] <"j9jit24"> expected to be =~
    [junit] </client/>.
    [junit] Failure:
    [junit] test_dash_little_n_wraps_script_with_while_gets(TestCommandLineSwitches)
    [junit]     [/home/headius/jruby/./test/test_command_line_switches.rb:92:in `test_dash_little_n_wraps_script_with_while_gets'
    [junit]      /home/headius/jruby/./test/test_helper.rb:37:in `with_temp_script'
    [junit]      /home/headius/jruby/lib/ruby/1.8/tempfile.rb:188:in `open'
    [junit]      /home/headius/jruby/./test/test_helper.rb:29:in `with_temp_script'
    [junit]      /home/headius/jruby/./test/test_command_line_switches.rb:90:in `test_dash_little_n_wraps_script_with_while_gets']:
    [junit] <"a\na\nb\nb\n"> expected but was
    [junit] <"a\na\n">.
    [junit] Failure:
    [junit] test_dash_little_p_wraps_script_with_while_gets_and_prints(TestCommandLineSwitches)
    [junit]     [/home/headius/jruby/./test/test_command_line_switches.rb:102:in `test_dash_little_p_wraps_script_with_while_gets_and_prints'
    [junit]      /home/headius/jruby/./test/test_helper.rb:37:in `with_temp_script'
    [junit]      /home/headius/jruby/lib/ruby/1.8/tempfile.rb:188:in `open'
    [junit]      /home/headius/jruby/./test/test_helper.rb:29:in `with_temp_script'
    [junit]      /home/headius/jruby/./test/test_command_line_switches.rb:100:in `test_dash_little_p_wraps_script_with_while_gets_and_prints']:
    [junit] <"a\na\na\nb\nb\nb\n"> expected but was
    [junit] <"a\na\nb\nb\n">.
    [junit] Failure:
    [junit] test_server_vm_option(TestCommandLineSwitches) [/home/headius/jruby/./test/test_command_line_switches.rb:223]:
    [junit] <"j9jit24"> expected to be =~
    [junit] </(tiered|server)/>.

Obviously the server/client strings are the old classic problem with matching against the name of the VM. But the -n and -p behaviors, I'm confused about; there's nothing that should be platform-specific in them.

Fixes to date committed to trunk.


Charles Oliver Nutter added a comment - 04/Oct/08 08:13 PM

Fixed the above and some JI test bugs (see JRUBY-3037). Current issue now appear to be something freezing during test_launching_by_shell_script.rb.


Charles Oliver Nutter added a comment - 05/Oct/08 10:27 PM

I've made a few more fixes and disabled some tests that appeared to be failing under IBM JDK, and I think we're able to run the test suite to completion now. See JRUBY-3037, JRUBY-3040, and JRUBY-3043 for those remaining broken cases.


Charles Oliver Nutter added a comment - 05/Oct/08 10:46 PM

I fixed what I could and disabled a few tests. See the bugs listed in my previous comment for those issues. They're mostly minor, and we now have a CI run against IBM that should help keep it working into the future.


Charles Oliver Nutter made changes - 05/Oct/08 10:46 PM
Resolution Fixed [ 1 ]
Fix Version/s JRuby 1.1.5 [ 14528 ]
Status In Progress [ 3 ] Resolved [ 5 ]
Charles Oliver Nutter made changes - 12/Jan/09 04:28 PM
Status Resolved [ 5 ] Closed [ 6 ]