maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "kaniska (JIRA)" <j...@codehaus.org>
Subject [jira] Created: (MAVEN-1867) Facing OutOfMemory as IsolatedClassloader (plexus-compiler jar) is not closed after JavacCompiler is done with compilation.
Date Wed, 08 Sep 2010 00:33:32 GMT
Facing OutOfMemory as IsolatedClassloader (plexus-compiler jar) is not closed after JavacCompiler
is done with compilation.
---------------------------------------------------------------------------------------------------------------------------

                 Key: MAVEN-1867
                 URL: http://jira.codehaus.org/browse/MAVEN-1867
             Project: Maven 1
          Issue Type: Bug
          Components: core
    Affects Versions: 1.2
         Environment: Windows 2003 Server

            Reporter: kaniska
            Priority: Blocker
         Attachments: IsolatedClassLoader_Issue.docx

In Eclipse environment for a maven-based project, Auto-build fires Maven-build which in turn
executes CompilerMojo, finally creating an IsolatedClassloader for each compile call !

IsolatedClassLoader.addURL(URL) line: 42...	
JavacCompiler.compile(CompilerConfiguration) line: 141	
CompilerMojo(AbstractCompilerMojo).execute() line: 493...
DefaultBuildPluginManager.executeMojo(MavenSession, MojoExecution) line: 105...	
MavenImpl.execute(MavenExecutionRequest, IProgressMonitor) ...
MavenBuilder.build(int, Map, IProgressMonitor) line: 153	....
AutoBuildJob.run(IProgressMonitor) line: 238

So every single change in maven-v4 project creates a new IsolatedClassloader which is fine.
But the problem is JavacCompiler is not closing the loader which holds huge number of jars
(url points to maven-repo) in its url classpath.
It should use ClassLoaderutil.releaseLoader(..) to unload the jars.

GC does not reclaim the isolatedclassloader instances (not sure why).
As a result, IsolatedClassloader instances consume retains the heap.
Eventually maven-application goes OutOfMemory !

Attached is the heapdump analysis of isolatedclassloader that holds the memory.

This is kind of blocking us from building largescale maven app which requires good number
of jars in development time for compiling the app source at development time.

Please note that we face this issue at development time whenever developer making changes
in source code as explained in the code-flow above.

Please let us know if more information is required.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message