Yup, it was the new ObjectProxyCache I committed this morning.  Fixed in
r5371.   From my comments:

"Fixed PermGen issue in build caused by daemon "vulture" thread in new
ObjectProxyCache.  OPC was not being finalized due to this thread (which
must have prevented the entire runtime from being finalized, as the OPC
instances weren't using a lot of memory themselves).  With the build
spinning up 189 runtimes, this quickly led to blown PermGen (though not when
running test-interpreted).

"Will have to find another way to do the OPC vulture thread.  It's not
essential (I've simply disabled it); put/getOrCreate also expunge dead
entries, and the objects/proxies are held by weak/soft references and will
be gc'ed anyway, but in some cases an initial flurry of activity will
populate the cache, with little or no subsequent 'put' activity that might
trigger cleanup. (I observed this today while debugging.) "

Now that this is working, I'm encountering other build failures (in addition
to the Win/Jar/Dir/File issues I reported yesterday in
JRUBY-1785<http://jira.codehaus.org/browse/JRUBY-1785>).
These look like they may also be Windows-specific.  In
run-junit-precompiled, I get this sequence over and over (hard to tell where
the top is):

    [junit]     ... 37 more
    [junit] Error, could not compile; pass -
J-Djruby.jit.logging.verbose=true for more details
    [junit] java.lang.NullPointerException
    [junit]     at org.jruby.Ruby.runScript(Ruby.java:622)
    [junit]     at org.jruby.Ruby.compileAndLoadFile(Ruby.java:1875)
    [junit]     at org.jruby.runtime.load.ExternalScript.load(
ExternalScript.java:49)
    [junit]     at org.jruby.runtime.load.LoadService.smartLoad(
LoadService.java:326)
    [junit]     at org.jruby.Ruby$1.load(Ruby.java:1257)
    [junit]     at org.jruby.runtime.load.LoadService.smartLoad(
LoadService.java:326)
    [junit]     at org.jruby.runtime.load.LoadService.require(
LoadService.java:352)
    [junit]     at org.jruby.RubyKernel.require(RubyKernel.java:677)
    [junit]     at org.jruby.RubyKernelInvoker$require_method_1_0.call(Unknown
Source)
    [junit]     at org.jruby.runtime.CallSite$InlineCachingCallSite.call(
CallSite.java:158)
    [junit]     at org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call(
CallSite.java:103)
    [junit]     at ruby.C_3a_.jruby.trunk.test.__file__(test:1)
    [junit]     at ruby.C_3a_.jruby.trunk.test.load(test)
    [junit]     at org.jruby.Ruby.runScript(Ruby.java:622)
    [junit]     at org.jruby.Ruby.runNormally(Ruby.java:542)
    [junit]     at org.jruby.test.TestRubyBase.eval(TestRubyBase.java:69)
    [junit]     at
org.jruby.javasupport.test.TestNativeException.testCauseIsProxied
(TestNativeExcep
tion.java:48)
    [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
    [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    [junit]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java
:25)
    [junit]     at java.lang.reflect.Method.invoke(Method.java:597)
    [junit]     at junit.framework.TestCase.runTest(TestCase.java:154)
    [junit]     at junit.framework.TestCase.runBare(TestCase.java:127)
    [junit]     at junit.framework.TestResult$1.protect(TestResult.java:106)
    [junit]     at junit.framework.TestResult.runProtected(TestResult.java
:124)
    [junit]     at junit.framework.TestResult.run(TestResult.java:109)
    [junit]     at junit.framework.TestCase.run(TestCase.java:118)
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:203)
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:203)
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:203)
    [junit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run
(JUnitTestRunner.
java:421)
    [junit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch
(JUnitTestRunn
er.java:912)
    [junit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main
(JUnitTestRunner
.java:743)
    [junit] java.io.IOException: The filename, directory name, or volume
label syntax is incorrect
    [junit]     at java.io.WinNTFileSystem.canonicalize0(Native Method)
    [junit]     at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java
:396)
    [junit]     at java.io.File.getCanonicalPath(File.java:559)
    [junit]     at org.jruby.util.JRubyFile.getCanonicalPath(JRubyFile.java
:81)
    [junit]     at org.jruby.util.JavaNameMangler.mangleFilenameForClasspath
(JavaNameMangler.java:20
)
    [junit]     at
org.jruby.util.JavaNameMangler.mangledFilenameForStartupClasspath
(JavaNameMangler
.java:48)
    [junit]     at org.jruby.Ruby.tryCompile(Ruby.java:558)
    [junit]     at org.jruby.Ruby.compileAndLoadFile(Ruby.java:1870)
    [junit]     at org.jruby.runtime.load.ExternalScript.load(
ExternalScript.java:49)
    [junit]     at org.jruby.runtime.load.LoadService.smartLoad(
LoadService.java:326)
    [junit]     at org.jruby.Ruby$1.load(Ruby.java:1257)
    [junit]     at org.jruby.runtime.load.LoadService.smartLoad(
LoadService.java:326)
    [junit]     at org.jruby.runtime.load.LoadService.require(
LoadService.java:352)
    [junit]     at org.jruby.RubyKernel.require(RubyKernel.java:677)
    [junit]     at org.jruby.RubyKernelInvoker$require_method_1_0.call(Unknown
Source)
    [junit]     at org.jruby.runtime.CallSite$InlineCachingCallSite.call(
CallSite.java:158)
    [junit]     at org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call(
CallSite.java:103)
    [junit]     at ruby.C_3a_.jruby.trunk.test.__file__(test:1)
    [junit]     at ruby.C_3a_.jruby.trunk.test.load(test)
    [junit]     at org.jruby.Ruby.runScript(Ruby.java:622)
    [junit]     at org.jruby.Ruby.runNormally(Ruby.java:542)
    [junit]     at org.jruby.test.TestRubyBase.eval(TestRubyBase.java:69)
    [junit]     at
org.jruby.test.TestRaiseException.testRubyExceptionTraceIncludesJavas
(TestRaiseEx
ception.java:82)
    [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
    [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    [junit]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java
:25)
    [junit]     at java.lang.reflect.Method.invoke(Method.java:597)
    [junit]     at junit.framework.TestCase.runTest(TestCase.java:154)
    [junit]     at junit.framework.TestCase.runBare(TestCase.java:127)
    [junit]     at junit.framework.TestResult$1.protect(TestResult.java:106)
    [junit]     at junit.framework.TestResult.runProtected(TestResult.java
:124)
    [junit]     at junit.framework.TestResult.run(TestResult.java:109)
    [junit]     at junit.framework.TestCase.run(TestCase.java:118)
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:203)
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:203)
    [junit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run
(JUnitTestRunner.
java:421)
    [junit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch
(JUnitTestRunn
er.java:912)
    [junit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main
(JUnitTestRunner
.java:743)
    [junit] could not compile:
file:/C:/jruby/trunk/lib/jruby.jar!/builtin/javasupport.rb because of
: "java.io.IOException: The filename, directory name, or volume label syntax
is incorrect"
    [junit] java.lang.RuntimeException: java.io.IOException: The filename,
directory name, or volume
 label syntax is incorrect

Looks like a Windows issue...

-Bill

Reply via email to