[
https://issues.apache.org/jira/browse/MSHADE-329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Håkon Hallingstad updated MSHADE-329:
-------------------------------------
Summary: Concurrent writes of dependency-reduced-pom.xml adds same
exclusion ad infinitum (was: Concurrent writes of dependency-reduced-pom.xml
ads same exclusion ad infinitum)
> Concurrent writes of dependency-reduced-pom.xml adds same exclusion ad
> infinitum
> --------------------------------------------------------------------------------
>
> Key: MSHADE-329
> URL: https://issues.apache.org/jira/browse/MSHADE-329
> Project: Maven Shade Plugin
> Issue Type: Bug
> Affects Versions: 3.2.1
> Reporter: Håkon Hallingstad
> Priority: Major
>
> I have a multi-threaded {{mvn install}} that seems to halt but ends up using
> 200% CPU, in about 50% of the invocations. The {{mvn}} command used is:
> {panel}
> mvn -T1C -nsu -Dmaven.source.skip -Dmaven.javadoc.skip -Dmaven.test.skip
> install -rf :MODULE
> {panel}
> Using {{mvnDebug}} I have found out that there are 2 running Java threads,
> each writing {{dependency-reduced-pom.xml}} in two different modules {{A}}
> and {{B}}, respectively. These files seems to become several MB large, before
> they're deleted and then written again, and so forth.
> I have looked into one of the threads, and there is a
> {{rewriteDependencyReducedPomIfWeHaveReduction}} in ShadeMojo with a
> {{loopCounter}} with value 2735, that just keeps increasing. Presumably there
> is something like one dependency-reduced-pom.xml written per iteration.
> From the source code it seems this can only happen if
> https://github.com/apache/maven-shade-plugin/blob/master/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java#L1172
> is hit at least that number of times, meaning the ShadeMojo adds that many
> exclusions, which seems to correspond to hamcrest-core:
> {noformat}
> <dependencies>
> <dependency>
> <groupId>junit</groupId>
> <artifactId>junit</artifactId>
> <version>4.12</version>
> <scope>test</scope>
> <exclusions>
> <exclusion>
> <artifactId>hamcrest-core</artifactId>
> <groupId>org.hamcrest</groupId>
> </exclusion>
> <exclusion>
> <artifactId>hamcrest-core</artifactId>
> <groupId>org.hamcrest</groupId>
> </exclusion>
> ...
> {noformat}
> {panel}
> grep hamcrest-core dependency-reduced-pom.xml | wc -l
> 2735
> {panel}
>
> The same exclusion is added {{loopCounter}} times in {{updateExcludesInDeps}}.
> There is no problem running {{mvn}} in single-thread mode.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)