My investigation so far does not point to the new ObjectProxyCache (though
it has revealed a flaw in the algorithm for selecting a segment, taken
directly from ConcurrentHashMap -- at least with hashCodes returned from
System.identityHashCode (1.6,WinXP), the 6 highest-order bits are always 0,
causing all hash entries to go to the first segment). I haven't seen more
than about 2000 (peak) cache entries allocated in debug output, and even
those are gc'ed in short order.  I put in a (temporary) exception if more
than 10,000 were ever allocated -- never thrown.  Will continue to research
tonight, but the OOME is always (on my machine) thrown in
rubicon/test_method.rb, far, far away from JI code.  Also, only thrown in
test-compiled, not test-interpreted.  So I suggest other potential sources
continue to be explored.

BTW, I'll check in a version of JavaUtilities that creates a weak- (rather
than soft-) reference-based OPC, but at least in my environment, it doesn't
seem to make any difference.

-Bill

On 12/26/07, Vladimir Sizikov <[EMAIL PROTECTED]> wrote:
>
> Guys,
>
> That's the revision 5360 that causes the permgen failure.
>
> Thanks,
>   --Vladimir
>
> On Dec 26, 2007 10:54 PM, Charles Oliver Nutter <[EMAIL PROTECTED]>
> wrote:
> > I'm seeing some bad regressions on trunk, of the permgen variety:
> >
> >      [junit] Testsuite: org.jruby.test.RubyTestTestSuite
> >      [junit] could not compile:
> >
> test/externals/ruby_test/test/core/Hash/instance/tc_each_key_generated_test.rb
> > because of: "PermGen space"
> >      [junit] java.lang.OutOfMemoryError: PermGen space
> >      [junit] could not compile:
> >
> test/externals/ruby_test/test/core/Hash/instance/tc_each_value_generated_test.rb
> > because of: "PermGen space"
> >      [junit] java.lang.OutOfMemoryError: PermGen space
> >      [junit] could not compile:
> >
> test/externals/ruby_test/test/core/Hash/instance/tc_empty_generated_test.rb
> > because of: "PermGen space"
> >      [junit] java.lang.OutOfMemoryError: PermGen space
> >      [junit] java.lang.OutOfMemoryError: PermGen space
> >      [junit] IO error --
> > test/externals/ruby_test/test/core/Hash/instance/tc_empty
> >      [junit]
> >
> test/externals/ruby_test/test/core/Hash/instance/tc_empty_generated_test.rb:2:in
> > `require')
> >      [junit] Tests run: 87, Failures: 1, Errors: 4, Ti
> >
> > This is new as of the past two days. I had not been working on JRuby
> > since the 23rd, and updated a bit ago. Now ant test blows up every time,
> > under Java 5 and Java 6 on OS X. Vladimir confirmed Java 6 on Linux is
> > also blowing up.
> >
> > My money would be on Bill's changes, but I haven't investigated at all.
> > Those of you who committed changes the past two days need to bisect and
> > figure out what's blowing up...and then fix it.
> >
> > - Charlie
> >
> > ---------------------------------------------------------------------
> > To unsubscribe from this list please visit:
> >
> >     http://xircles.codehaus.org/manage_email
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>

Reply via email to