maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Ashitkin (JIRA)" <j...@codehaus.org>
Subject [jira] (MNG-5750) Sporadic failures in concurrent build
Date Sun, 11 Jan 2015 13:47:17 GMT

    [ https://jira.codehaus.org/browse/MNG-5750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=361061#comment-361061
] 

Alexander Ashitkin edited comment on MNG-5750 at 1/11/15 7:45 AM:
------------------------------------------------------------------

Some thughts on the root cause: #setArtifactsFilters seems to be caused by following pattern:
set empty filter before source mojo, it will create #deepCopy with empty artifacts and that
will trigger #setArtifactFilter
{code}
#setArtifactFilter null [another-module] [BuilderThread 2] [ashiale]
#getArtifacts artifactFilter == null || resolvedArtifacts == null, assigning empty set another-module
[another-module] [BuilderThread 8] [ashiale]
#getArtifacts [another-module] [BuilderThread 8] [ashiale]
	at org.apache.maven.project.MavenProject.getArtifacts(MavenProject.java:744)
	at org.apache.maven.project.MavenProject.deepCopy(MavenProject.java:1278)
	at org.apache.maven.project.MavenProject.<init>(MavenProject.java:201)
	at org.apache.maven.archiver.MavenArchiver.createArchive(MavenArchiver.java:501)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:295)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:247)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.execute(AbstractSourceJarMojo.java:216)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
#setArtifacts to [] [#getArtifactId==null] [BuilderThread 8] [ashiale]
	at org.apache.maven.project.MavenProject.setArtifacts(MavenProject.java:727)
	at org.apache.maven.project.MavenProject.deepCopy(MavenProject.java:1278)
	at org.apache.maven.project.MavenProject.<init>(MavenProject.java:201)
	at org.apache.maven.archiver.MavenArchiver.createArchive(MavenArchiver.java:501)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:295)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:247)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.execute(AbstractSourceJarMojo.java:216)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
#setArtifactFilter null [another-module] [BuilderThread 8] [ashiale]
#setArtifactFilter null [module-1] [BuilderThread 8] [ashiale]
#setArtifactFilter null [module-1] [BuilderThread 8] [ashiale]
#setArtifactFilter null [module-3] [BuilderThread 8] [ashiale]
...
#setArtifactFilter null [module-471] [BuilderThread 8] [ashiale]	
{code}


was (Author: alex_ashitkin):
Some thughts on the root cause: #setArtifactsFilters seems to be caused by following pattern:
set empty filter before source mojo, it willcreate deepCopy with empty artifacts and that
will trigger #setArtifactFilter
{code}
#setArtifactFilter null [another-module] [BuilderThread 2] [ashiale]
#getArtifacts artifactFilter == null || resolvedArtifacts == null, assigning empty set another-module
[another-module] [BuilderThread 8] [ashiale]
#getArtifacts [another-module] [BuilderThread 8] [ashiale]
	at org.apache.maven.project.MavenProject.getArtifacts(MavenProject.java:744)
	at org.apache.maven.project.MavenProject.deepCopy(MavenProject.java:1278)
	at org.apache.maven.project.MavenProject.<init>(MavenProject.java:201)
	at org.apache.maven.archiver.MavenArchiver.createArchive(MavenArchiver.java:501)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:295)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:247)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.execute(AbstractSourceJarMojo.java:216)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
#setArtifacts to [] [ArtifactIdIsNull] [BuilderThread 8] [ashiale]
	at org.apache.maven.project.MavenProject.setArtifacts(MavenProject.java:727)
	at org.apache.maven.project.MavenProject.deepCopy(MavenProject.java:1278)
	at org.apache.maven.project.MavenProject.<init>(MavenProject.java:201)
	at org.apache.maven.archiver.MavenArchiver.createArchive(MavenArchiver.java:501)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:295)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.packageSources(AbstractSourceJarMojo.java:247)
	at org.apache.maven.plugin.source.AbstractSourceJarMojo.execute(AbstractSourceJarMojo.java:216)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
#setArtifactFilter null [another-module] [BuilderThread 8] [ashiale]
#setArtifactFilter null [module-1] [BuilderThread 8] [ashiale]
#setArtifactFilter null [module-1] [BuilderThread 8] [ashiale]
#setArtifactFilter null [module-3] [BuilderThread 8] [ashiale]
...
#setArtifactFilter null [module-471] [BuilderThread 8] [ashiale]	
{code}

> Sporadic failures in concurrent build
> -------------------------------------
>
>                 Key: MNG-5750
>                 URL: https://jira.codehaus.org/browse/MNG-5750
>             Project: Maven
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 3.1.1, 3.2.1, 3.2.2, 3.2.5
>         Environment: SLES 3.0.80-0.7-default SMP x86_64 GNU/Linux Oracle HotSpot JDK
7u25
> windows server 2008 x64 Oracle HotSpot JDK 7u65/8u25
>            Reporter: Alexander Ashitkin
>            Priority: Critical
>
> We have a large project of 300+ modules which regularly fails with different kind of
errors in different places. The issue is reliably reproduced with parallel build and is not
happens in single threaded. The optimal concurrency level for our project ~10 threads. At
this level ~%20 of builds fail. To workaround the issue we reduced concurrency to 4 in development
builds and reverted production build to 1 thread.
> Main point of failures:
> # Surefire ClassNotFound. Reported and investigated in SUREFIRE-1132. Points to a problem
with MavenProject#getArtifacts - empty set unexpectedly returned.
> # Compiler - unexpected failure because of incorrect classpath (literally all dependencies
are not on the classpath), like: {code}
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[3,30] package ... does not
exist
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[4,30] package ... does not
exist
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[8,25] package ... does not
exist
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[9,21] package org.joda.time
does not exist
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[11,37] package com.google.common.base
does not exist
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[11,1] static import only
from classes and interfaces
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[12,37] package com.google.common.base
does not exist
> 20:20:54 [ERROR] /D:/jenkins/work/workspace/..Request.java:[12,1] static import only
from classes and interfaces
> {code}
> # Jar - unexpected NPE. Reported with stack traces in MJAR-192. (assembly plusgin seems
to be also affected)
> At this point the issue looks like problem with MavenProject#getArtifacts in concurrent
builds.
> To help with the issue im happy to implement or evaluate any custom assembly to trace
this down. Unfortunately i cannot submit my project - it is proprietary.
> Thanks in advance, Alexander



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Mime
View raw message