Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Cannot Reproduce
    • Affects Version/s: JRuby 1.0.0, JRuby 1.0.1
    • Fix Version/s: JRuby 1.0.2, JRuby 1.1b1
    • Component/s: None
    • Labels:
      None
    • Environment:
      Server: Big honkin' Enterprise 450 w/ton o'memory)
      O/S: Solaris 2.9
      JDK: 1.6.0 fcs b105
      JDK: 6u5
    • Number of attachments :
      0

      Description

      % head <jruby_install>/bin/gem
      #!/usr/bin/env jruby -J-Xms128M -J-Xmx1024M

      (This are the memory settings we use when generating javadocs for
      the javase platform.)

      % gem install optiflag
      Bulk updating Gem source index for: http://gems.rubyforge.org
      Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
      at java.util.LinkedList.addBefore(LinkedList.java:778)
      at java.util.LinkedList.add(LinkedList.java:344)
      at org.jvyamlb.ParserImpl$11.produce(ParserImpl.java:320)
      at org.jvyamlb.ParserImpl.parseStreamNext(ParserImpl.java:823)
      at org.jvyamlb.ParserImpl.peekEvent(ParserImpl.java:774)
      at org.jvyamlb.ComposerImpl.composeNode(ComposerImpl.java:111)
      at org.jvyamlb.ComposerImpl.composeNode(ComposerImpl.java:167)
      at org.jvyamlb.ComposerImpl.composeNode(ComposerImpl.java:167)
      at org.jvyamlb.ComposerImpl.composeNode(ComposerImpl.java:167)
      at org.jvyamlb.ComposerImpl.composeDocument(ComposerImpl.java:100)
      at org.jvyamlb.ComposerImpl.getNode(ComposerImpl.java:76)
      at org.jvyamlb.BaseConstructorImpl.getData(BaseConstructorImpl.java:97)
      at org.jruby.RubyYAML.load(RubyYAML.java:221)
      at org.jruby.RubyYAMLInvokerSload1.call(Unknown Source)
      at org.jruby.runtime.callback.FastInvocationCallback.execute(FastInvocationCallback.java:49)
      at org.jruby.internal.runtime.methods.SimpleCallbackMethod.call(SimpleCallbackMethod.java:81)
      at org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:568)
      at org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:207)
      at org.jruby.evaluator.EvaluationState.orNode(EvaluationState.java:1459)
      at org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:339)
      at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
      at org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
      at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
      at org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1023)
      at org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:253)
      at org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:531)
      at org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:201)
      at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
      at org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
      at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
      at org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1023)
      at org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:253)

        Activity

        Hide
        Thomas E Enebo added a comment -

        I did not notice that this was originally reported against Solaris, but we can now run this on 1.0.2 pre-build on both Windows and MacOS with no troubles. On windows there were some minor tweakage to make sure all .bat files had the upp'd -Xmx values. I also tried doing this by wiping out the source_cache which should be a worse case scenario.

        Eric, can you reproduce this?

        Show
        Thomas E Enebo added a comment - I did not notice that this was originally reported against Solaris, but we can now run this on 1.0.2 pre-build on both Windows and MacOS with no troubles. On windows there were some minor tweakage to make sure all .bat files had the upp'd -Xmx values. I also tried doing this by wiping out the source_cache which should be a worse case scenario. Eric, can you reproduce this?
        Hide
        Charles Oliver Nutter added a comment -

        I was not able to reproduce this on Solaris 10 x86 or Mac OS 10.4 x86, but I did manage to get OOM on a Linux x64 box running Java 5. However, the -Xmx flag to bump it up (-J-Xmx512M in my case) allowed it to "Bulk update" just fine and proceed to the optiflag install.

        Hence, "cannot reproduce". Eric, if you could try again against the 1.0 branch (ASAP, we're cutting a release within hours) and try to run this again, we would appreciate it. At the moment, it seems to work fine, albeit requiring a memory bump on one or two platforms.

        Show
        Charles Oliver Nutter added a comment - I was not able to reproduce this on Solaris 10 x86 or Mac OS 10.4 x86, but I did manage to get OOM on a Linux x64 box running Java 5. However, the -Xmx flag to bump it up (-J-Xmx512M in my case) allowed it to "Bulk update" just fine and proceed to the optiflag install. Hence, "cannot reproduce". Eric, if you could try again against the 1.0 branch (ASAP, we're cutting a release within hours ) and try to run this again, we would appreciate it. At the moment, it seems to work fine, albeit requiring a memory bump on one or two platforms.
        Hide
        Thomas E Enebo added a comment -

        Bumped max heap up to 512M since this worked for Charlie on 64 bit system. Commit 4837.

        Show
        Thomas E Enebo added a comment - Bumped max heap up to 512M since this worked for Charlie on 64 bit system. Commit 4837.
        Hide
        Joni Niemi added a comment -

        The reason seems to be that gem install process is a memory hog, at least in Windows platform. The process takes > 750 megabytes of memory in Windows XP.

        Show
        Joni Niemi added a comment - The reason seems to be that gem install process is a memory hog, at least in Windows platform. The process takes > 750 megabytes of memory in Windows XP.
        Hide
        Charles Oliver Nutter added a comment -

        Joni: I believe this should be entirely solved now that we've moved to RubyGems 1.2+. It no longer consumes so much memory, as part of design changes in RubyGems.

        Show
        Charles Oliver Nutter added a comment - Joni: I believe this should be entirely solved now that we've moved to RubyGems 1.2+. It no longer consumes so much memory, as part of design changes in RubyGems.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: