Sv: OOME in javac when building on Windows 7

Phil Race philip.race at oracle.com
Mon Nov 7 12:41:08 PST 2011


Fredrik,

['ccing the list]


On 11/5/2011 2:14 AM, Fredrik Öhrström wrote:
> I think you have set an explicit --with-server-java=".."
> where you have not added enough heap.
>
> If you just run ./configure, then it should set the
> heap size properly.
>
> Try that.
>
> //Fredrik
>
> ----- philip.race at oracle.com skrev:
>
>> configure is happy now but the build fails with OOM .. large
>> attachment
>> so sending to you directly.
>>
>> -phil.


I never used that option. I was just using ./configure.
That in fact said it would build both so I removed the server dir :
rm -rf windows-i586-clientANDserver-release

and tried again with :
  ./configure --with-jvm-variant=client 
--with-freetype=/cygdrive/c/build-infra/freetype

I still get the OOME
The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: GC overhead limit exceeded
         at 
com.sun.tools.javac.parser.JavacParser.blockStatements(JavacParser.ja
va:1551)
         at 
com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:1523)
         at 
com.sun.tools.javac.parser.JavacParser.block(JavacParser.java:1537)
         at 
com.sun.tools.javac.parser.JavacParser.methodDeclaratorRest(JavacPars
er.java:2654)
         at 
com.sun.tools.javac.parser.JavacParser.classOrInterfaceBodyDeclaratio
n(JavacParser.java:2603)
         at 
com.sun.tools.javac.parser.JavacParser.classOrInterfaceBody(JavacPars
er.java:2531)
         at 
com.sun.tools.javac.parser.JavacParser.classDeclaration(JavacParser.j
ava:2379)
         at 
com.sun.tools.javac.parser.JavacParser.classOrInterfaceOrEnumDeclarat
ion(JavacParser.java:2320)
         at 
com.sun.tools.javac.parser.JavacParser.typeDeclaration(JavacParser.ja
va:2309)
         at 
com.sun.tools.javac.parser.JavacParser.parseCompilationUnit(JavacPars
er.java:2247)
         at 
com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:630)
         at 
com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:667)
         at 
com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:96
4)
         at 
com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:855)
         at com.sun.tools.javac.main.Main.compile(Main.java:546)
         at 
com.sun.tools.javac.main.JavacServer$Handler.run(JavacServer.java:660
)
         at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
         at java.lang.Thread.run(Thread.java:722)


Javac command line that failed: 
-XDserver:portfile=c:/build-infra/jdk7/build/win
dows-i586-client-release/javacservers/GENERATE_NEWBYTECODE.port,poolsize=6,javac
=C:/build-infra/jdk7/build/windows-i586-client-release/uncygdrive.exe%20C:/jdk1.
7/bin/java%20-XX:+UseParallelOldGC%20-verbosegc%20-Xbootclasspath/p:c:/build-inf
ra/jdk7/build/windows-i586-client-release/langtools/dist/bootstrap/lib/javac.jar
%20-jar%20c:/build-infra/jdk7/build/windows-i586-client-release/langtools/dist/b
ootstrap/lib/javac.jar 
-XDdeps=file=c:/build-infra/jdk7/build/windows-i586-clien
t-release/corba/classes/com/sun/corba/se/impl/logging/_the.package.deps,groupon=
package 
-XDpubapi=file=c:/build-infra/jdk7/build/windows-i586-client-release/cor
ba/classes/com/sun/corba/se/impl/logging/_the.package.api,notify,package=com.sun
.corba.se.impl.logging 
-XDnativeapi=file=c:/build-infra/jdk7/build/windows-i586-
client-release/corba/classes/com/sun/corba/se/impl/logging/_the.package.native,n
otify,package=com.sun.corba.se.impl.logging -Xprefer:source 
-XDignore.symbol.fil
e=true -cp C:/jdk1.7/lib/tools.jar 
-Xlint:all,-deprecation,-unchecked,-serial,-f
allthrough,-cast,-rawtypes,-static,-dep-ann -implicit:none -sourcepath 
c:/build-
infra/jdk7/corba/src/share/classes;c:/build-infra/jdk7/build/windows-i586-client
-release/corba/gensrc;c:/build-infra/jdk7/build/windows-i586-client-release/corb
a/logwrappers -d 
c:/build-infra/jdk7/build/windows-i586-client-release/corba/cla
sses @C:\Users\prr\AppData\Local\Temp\atfile_a08860


My machine is an 8-core Xeon with 6GB RAM .. running 64 bit Windows 7.
I am using 32 bit JDK 1.7.0_01 as the bootstrap JDK, set via "JAVA_HOME".

I see that the build set "UseParallelOldGC". Why ? I don't see any heap 
options although
that may imply some but I am not sure how well it works for the client 
VM .. on
the other hand it apparently worked for you.
I didn't use any of the options you had in your email from a week or so ago
"--disable-javac-multi-core --disable-javac-deps --disable-javac-server"
but your email said those were just to prevent a 2 minute timeout.

====

And one other thing: about a minute into the build a windows command 
tool GUI
pops up, but there's no shell in the window - its empty. Its appears 
something in the
build inadvertently creates this GUI to run some command.
I didn't notice when it went away, but it was gone by the time the build 
failed.

-phil.



More information about the build-infra-dev mailing list