apache / apache/maven-remote-resources-plugin

[MRRESOURCES-106] ProcessRemoteResourcesMojo#getProjects() can end up consuming a lot of memory for big projects

Open
#233 7 comments 0 reactions 1 assignee Claimed by @hboutemy View on GitHub
bug priority:major
Dominant language
Java
Stars
17
Forks
18
Avg merge
6h 5m
Merged PRs (30d)
5

Description

**[Thomas Mortagne](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=tmortagne)** opened **[MRRESOURCES-106](https://issues.apache.org/jira/browse/MRRESOURCES-106?redirect=false)** and commented

At XWiki we are using the remote resource plugin to generate a NOTICE files we put in the META-INF of all jars. The file can be found on https://github.com/xwiki/xwiki-commons/blob/master/xwiki-commons-tools/xwiki-commons-tool-license-resources/src/main/resources/META-INF/NOTICE.vm.

We have a lot of memory issues and we kept increasing the max memory but it was starting to be a bit insane (we now get a OOM with -Xmx2500m) so I finally took a profiler to try to figure out where all this memory goes.

We did noticed for a while that remote resource plugin is taking longer and longer to execute during the build so I had my doubts already.
What Yourkit is telling me is that almost half of the memory (400MB here because I reduced the max memory for it to fail earlier) is retained by an ArrayList of MavenProject instances located in ProcessRemoteResourcesMojo#getProjects().

It can be reproduced by building https://github.com/xwiki/xwiki-platform (you will need to add some repositories in your settings.xml, you can find them on http://dev.xwiki.org/xwiki/bin/view/Community/Building/#HInstallingMaven).

Also I can probably put the memory dump I have somewhere if someone wants to download it.

---

**Affects:** 1.5

**Issue Links:**
- [MRRESOURCES-94](https://issues.apache.org/jira/browse/MRRESOURCES-94) Performance issue in ProcessRemoteResourcesMojo.configureVelocityContext(...)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.