[ 
https://issues.apache.org/jira/browse/MRESOLVER-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17126198#comment-17126198
 ] 

Michael Osipov commented on MRESOLVER-114:
------------------------------------------

I am still going through the issue and your change. I am having the feeling (I 
might be wrong) that your sophisticated patch just fixes the symptom and not 
the cause. Based on your analysis I understand that the issue is here:

{code:java}
            if ( isLocallyInstalled( local, versionResult ) )
            {
                if ( local.getRepository() != null )
                {
                    result.setRepository( local.getRepository() );
                }
                else
                {
                    result.setRepository( lrm.getRepository() );
                }
                try
                {
                    artifact = artifact.setFile( getFile( session, artifact, 
local.getFile() ) );
                    result.setArtifact( artifact );
                    artifactResolved( session, trace, artifact, 
result.getRepository(), null );
                }
                catch ( ArtifactTransferException e )
                {
                    result.addException( e );
                }
                if ( !local.isAvailable() )
                {
                    /*
                     * NOTE: Interop with simple local repository: An artifact 
installed by a simple local repo manager
                     * will not show up in the repository tracking file of the 
enhanced local repository. If however the
                     * maven-metadata-local.xml tells us the artifact was 
installed locally, we sync the repository
                     * tracking file.
                     */
                    lrm.add( session, new LocalArtifactRegistration( artifact ) 
);
                }
                continue;
            }
            else if ( local.getFile() != null )
            {
                LOGGER.debug( "Verifying availability of {} from {}", 
local.getFile(), repos );
            }
{code}

So what I understand is that thread A has passed {{performDownloads()}} as well 
the forthcoming loop over {{results}}.

> ArtifactNotFoundExceptions when building in parallel
> ----------------------------------------------------
>
>                 Key: MRESOLVER-114
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-114
>             Project: Maven Resolver
>          Issue Type: Bug
>          Components: resolver
>    Affects Versions: 1.4.2
>            Reporter: Rainer Reich
>            Priority: Major
>         Attachments: maven-debug-log.txt
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> We have a multi-module project with quite many modules and many dependencies 
> and observe pretty random {{ArtifactNotFoundExceptions}} when building in 
> parallel with an empty local repository.
> The "funny" thing is that Maven did in fact download the jar that it 
> complained about not finding.
> In this example Maven said it could not find 
> {{edu.tum.cs:cup-runtime:jar:11a}} (see stacktrace below)
>  But it also said: {{Downloaded from central-mirror: 
> [https://mirror.xy.com/repository/maven-all-mirror/edu/tum/cs/cup-runtime/11a/cup-runtime-11a.jar]}}.
> When looking into the local repository after the failed build we found the 
> cup-runtime.jar in the correct place with the correct checksum.
> We tried the following to "fix" the problem:
>  * build with and without the takari extensions ({{takari-local-repository}} 
> & {{takari-smart-builder}}) using {{--builder smart}}
>  * also build with {{io.takari.aether:aether-connector-okhttp}} extension
>  * only execute goal package instead of install
>  * build with these properties: {{-Daether.connector.basic.threads=1 
> -Daether.connector.resumeDownloads=false}}
> But nothing helped.
> Unfortunately it seems to be a race condition and we cannot reproduce it 
> consistently but it happens in about 1 out of 5 builds.
> {code:java}
> ...
> [2019-11-18T16:46:29.370Z] [INFO] Downloaded from central-mirror: 
> https://mirror.xy.com/repository/maven-all-mirror/edu/tum/cs/cup-runtime/11a/cup-runtime-11a.jar
>  (13 kB at 738 kB/s)
> ...
> [2019-11-18T16:46:30.894Z] [ERROR] Failed to execute goal on project xy: 
> Could not resolve dependencies for project xy: The following artifacts could 
> not be resolved: edu.tum.cs:cup-runtime:jar:11a, 
> org.checkerframework:checker-qual:jar:2.5.7, org.ow2.asm:asm:jar:7.2, 
> cglib:cglib:jar:3.3.0: Could not find artifact edu.tum.cs:cup-runtime:jar:11a 
> -> [Help 1]
> [2019-11-18T16:46:30.894Z] 
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal on project xy: Could not resolve dependencies for project xy: The 
> following artifacts could not be resolved: edu.tum.cs:cup-runtime:jar:11a, 
> org.checkerframework:checker-qual:jar:2.5.7, org.ow2.asm:asm:jar:7.2, 
> cglib:cglib:jar:3.3.0: Could not find artifact edu.tum.cs:cup-runtime:jar:11a
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>  (LifecycleDependencyResolver.java:269)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>  (LifecycleDependencyResolver.java:147)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>  (MojoExecutor.java:248)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:156)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:148)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl.buildProject 
> (SmartBuilderImpl.java:205)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run 
> (SmartBuilderImpl.java:77)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
> [2019-11-18T16:46:30.894Z]     at java.util.concurrent.FutureTask.run 
> (FutureTask.java:264)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1128)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:628)
> [2019-11-18T16:46:30.894Z]     at java.lang.Thread.run (Thread.java:834)
> [2019-11-18T16:46:30.894Z] Caused by: 
> org.apache.maven.project.DependencyResolutionException: Could not resolve 
> dependencies for project xy: The following artifacts could not be resolved: 
> edu.tum.cs:cup-runtime:jar:11a, org.checkerframework:checker-qual:jar:2.5.7, 
> org.ow2.asm:asm:jar:7.2, cglib:cglib:jar:3.3.0: Could not find artifact 
> edu.tum.cs:cup-runtime:jar:11a
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.project.DefaultProjectDependenciesResolver.resolve 
> (DefaultProjectDependenciesResolver.java:209)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>  (LifecycleDependencyResolver.java:243)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>  (LifecycleDependencyResolver.java:147)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>  (MojoExecutor.java:248)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:156)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:148)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl.buildProject 
> (SmartBuilderImpl.java:205)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run 
> (SmartBuilderImpl.java:77)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
> [2019-11-18T16:46:30.894Z]     at java.util.concurrent.FutureTask.run 
> (FutureTask.java:264)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1128)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:628)
> [2019-11-18T16:46:30.894Z]     at java.lang.Thread.run (Thread.java:834)
> [2019-11-18T16:46:30.894Z] Caused by: 
> org.eclipse.aether.resolution.DependencyResolutionException: The following 
> artifacts could not be resolved: edu.tum.cs:cup-runtime:jar:11a, 
> org.checkerframework:checker-qual:jar:2.5.7, org.ow2.asm:asm:jar:7.2, 
> cglib:cglib:jar:3.3.0: Could not find artifact edu.tum.cs:cup-runtime:jar:11a
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies 
> (DefaultRepositorySystem.java:357)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.project.DefaultProjectDependenciesResolver.resolve 
> (DefaultProjectDependenciesResolver.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>  (LifecycleDependencyResolver.java:243)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>  (LifecycleDependencyResolver.java:147)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>  (MojoExecutor.java:248)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:156)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:148)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl.buildProject 
> (SmartBuilderImpl.java:205)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run 
> (SmartBuilderImpl.java:77)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
> [2019-11-18T16:46:30.894Z]     at java.util.concurrent.FutureTask.run 
> (FutureTask.java:264)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1128)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:628)
> [2019-11-18T16:46:30.894Z]     at java.lang.Thread.run (Thread.java:834)
> [2019-11-18T16:46:30.894Z] Caused by: 
> org.eclipse.aether.resolution.ArtifactResolutionException: The following 
> artifacts could not be resolved: edu.tum.cs:cup-runtime:jar:11a, 
> org.checkerframework:checker-qual:jar:2.5.7, org.ow2.asm:asm:jar:7.2, 
> cglib:cglib:jar:3.3.0: Could not find artifact edu.tum.cs:cup-runtime:jar:11a
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve 
> (DefaultArtifactResolver.java:424)
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts 
> (DefaultArtifactResolver.java:229)
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies 
> (DefaultRepositorySystem.java:340)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.project.DefaultProjectDependenciesResolver.resolve 
> (DefaultProjectDependenciesResolver.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>  (LifecycleDependencyResolver.java:243)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>  (LifecycleDependencyResolver.java:147)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>  (MojoExecutor.java:248)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:156)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:148)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl.buildProject 
> (SmartBuilderImpl.java:205)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run 
> (SmartBuilderImpl.java:77)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
> [2019-11-18T16:46:30.894Z]     at java.util.concurrent.FutureTask.run 
> (FutureTask.java:264)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1128)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:628)
> [2019-11-18T16:46:30.894Z]     at java.lang.Thread.run (Thread.java:834)
> [2019-11-18T16:46:30.894Z] Caused by: 
> org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find 
> artifact edu.tum.cs:cup-runtime:jar:11a
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve 
> (DefaultArtifactResolver.java:414)
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts 
> (DefaultArtifactResolver.java:229)
> [2019-11-18T16:46:30.894Z]     at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies 
> (DefaultRepositorySystem.java:340)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.project.DefaultProjectDependenciesResolver.resolve 
> (DefaultProjectDependenciesResolver.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>  (LifecycleDependencyResolver.java:243)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>  (LifecycleDependencyResolver.java:147)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>  (MojoExecutor.java:248)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:202)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:156)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:148)
> [2019-11-18T16:46:30.894Z]     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl.buildProject 
> (SmartBuilderImpl.java:205)
> [2019-11-18T16:46:30.894Z]     at 
> io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run 
> (SmartBuilderImpl.java:77)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
> [2019-11-18T16:46:30.894Z]     at java.util.concurrent.FutureTask.run 
> (FutureTask.java:264)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1128)
> [2019-11-18T16:46:30.894Z]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:628)
> [2019-11-18T16:46:30.894Z]     at java.lang.Thread.run (Thread.java:834)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to