JRuby (please use github issues at http://bugs.jruby.org)
  1. JRuby (please use github issues at http://bugs.jruby.org)
  2. JRUBY-5567

Invokers will fail to generate and kill method binding on systems that do not support bytecode loading

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: JRuby 1.6RC3
    • Fix Version/s: JRuby 1.6.4
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Invokers (our handles to Java methods bound to Ruby names) can be generated ahead of time or just-in-time when a class is bound. Normally they are bytecode-based, in which case it's more efficient to generate them ahead of time. If they are not generated ahead of time, and the class is being bound on a system that does not support loading bytecode, the binding process will terminate prematurely, often terminating the program as well.

      This is the cause of JRUBY-5565.

      I'm going to make a short-term fix to fall back on reflected invokers when bytecoded invokers cannot be loaded.

        Activity

        Hide
        Charles Oliver Nutter added a comment -

        commit 07c811b5f6318dbcecf7dfdbf06448d20de7980c
        Author: Charles Oliver Nutter <headius@headius.com>
        Date: Wed Mar 9 01:14:21 2011 -0600

        Preliminary fix for JRUBY-5567: Invokers will fail to generate and kill method binding on systems that do not support bytecode loading

        I added logic into MethodFactory to attempt to load a class, forcing reflected invokers forever if this fails in any way. I have confirmed manually that this does not interfere with normal execution, and have left logging in place that indicates when it has fallen back. See JRUBY-5568 for a task to remove this logging before JRuby 1.6 final.

        JRUBY-5567 will remain open until a more robust solution can be found (JRuby 1.6.1).

        See also JRUBY-5566, which this issue caused.

        Show
        Charles Oliver Nutter added a comment - commit 07c811b5f6318dbcecf7dfdbf06448d20de7980c Author: Charles Oliver Nutter <headius@headius.com> Date: Wed Mar 9 01:14:21 2011 -0600 Preliminary fix for JRUBY-5567 : Invokers will fail to generate and kill method binding on systems that do not support bytecode loading I added logic into MethodFactory to attempt to load a class, forcing reflected invokers forever if this fails in any way. I have confirmed manually that this does not interfere with normal execution, and have left logging in place that indicates when it has fallen back. See JRUBY-5568 for a task to remove this logging before JRuby 1.6 final. JRUBY-5567 will remain open until a more robust solution can be found (JRuby 1.6.1). See also JRUBY-5566 , which this issue caused.
        Hide
        Charles Oliver Nutter added a comment -

        Remarking for 1.6.1 to come up with a more robust solution.

        Show
        Charles Oliver Nutter added a comment - Remarking for 1.6.1 to come up with a more robust solution.
        Charles Oliver Nutter made changes -
        Field Original Value New Value
        Fix Version/s JRuby 1.6.1 [ 17085 ]
        Fix Version/s JRuby 1.6 [ 17062 ]
        Charles Oliver Nutter made changes -
        Fix Version/s JRuby 1.6.2 [ 17306 ]
        Fix Version/s JRuby 1.6.1 [ 17085 ]
        Charles Oliver Nutter made changes -
        Fix Version/s JRuby 1.6.3 [ 17374 ]
        Fix Version/s JRuby 1.6.2 [ 17306 ]
        Thomas E Enebo made changes -
        Fix Version/s JRuby 1.6.4 [ 17472 ]
        Fix Version/s JRuby 1.6.3 [ 17374 ]
        Hide
        Charles Oliver Nutter added a comment -

        I don't see that there's a more robust solution that simply attempting to load code and disabling code loading, as I did in 07c811b. Marking as fixed.

        Show
        Charles Oliver Nutter added a comment - I don't see that there's a more robust solution that simply attempting to load code and disabling code loading, as I did in 07c811b. Marking as fixed.
        Charles Oliver Nutter made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Charles Oliver Nutter made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Charles Oliver Nutter
            Reporter:
            Charles Oliver Nutter
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: