[ https://issues.apache.org/jira/browse/MRESOLVER-55?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16667637#comment-16667637 ]
gordon cody commented on MRESOLVER-55: -------------------------------------- Hello Michael We have the same problem when we need to download into an empty maven cache from our artifactory . It occurs only when our network is quite busy. We modified our maven-3.5.2 to use the new wagon-http-3.2 jars and set -Dmaven.wagon.http.retryHandler.count=4. Apologies, but I cannot provide complete logs. With the wagon-http-3.2 jars installed, I can see *I/O retry messages* in some of the successful builds, (this is great): org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute I/O exception (org.apache.maven.wagon.providers.http.httpclient.NoHttpResponseException) caught when processing request to \{s}-><ourdomain>:443: The target server failed to respond org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute Retrying request to \{s}-><ourdomain> Still we are having intermittent issues although the errors are now harder to reproduce. This page [[https://maven.apache.org/wagon/wagon-providers/wagon-http/|http://example.com/]] talked about standard vs default wagons so I tried adding this to our build -Dmaven.wagon.http.retryhandler.class=standard in order to avoid having cases where retries would be skipped but the error continues to occur. org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project xyz: Could not resolve dependencies for project <gid>: <artifactid>:pom:<version>: Could not transfer artifact<somegid>:<someartifactid>:jar:<someversion> from/to <ourrepo> (<our url>): Connect to <ourdomain>:443 [<ourdomain>/<ourIP>] *failed: connect timed out*. org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project <our module> Could not resolve dependencies for project <our gid>:<our aid>:war:<our version>-SNAPSHOT: Could not transfer artifact <somegid>:<someaid>:jar:<someversion> from/to <our repository name> (<our repoUrl>): Connect to <our host>:<our port> [<our host>/<our IP>] failed: connect timed out at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:221) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:127) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:245) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:199) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project <our gid>:<our aid>:war:<our version>-SNAPSHOT: Could not transfer artifact <somegid>:<someaid>:jar:<someversion> from/to <our repository name> (<our repoUrl>): Connect to <our host>:<our port> [<our host>/<our IP>] failed: connect timed out at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:211) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:195) ... 23 more Caused by: org.eclipse.aether.resolution.DependencyResolutionException: Could not transfer artifact <failed gid>:<failed aid>:jar:<failed version> from/to <our repository name> (<our repoUrl>): Connect to <our host>:<our port> [<our host>/<our IP>] failed: connect timed out at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:384) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:205) ... 24 more Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact <failed gid>:<failed aid>:jar:<failed version> from/to <our repository name> (<our repoUrl>): Connect to <our host>:<our port> [<our host>/<our IP>] failed: connect timed out at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:367) ... 25 more Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact <failed gid>:<failed aid>:jar:<failed version> from/to <our repository name> (<our repoUrl>): Connect to <our host>:<our port> [<our host>/<our IP>] failed: connect timed out at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:43) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.maven.wagon.TransferFailedException: Connect to <ourhost>:<our port> [<our host>/<our IP>] failed: connect timed out at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:1066) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:960) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run(WagonTransporter.java:560) at org.eclipse.aether.transport.wagon.WagonTransporter.execute(WagonTransporter.java:427) at org.eclipse.aether.transport.wagon.WagonTransporter.get(WagonTransporter.java:404) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:447) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350) ... 4 more Caused by: org.apache.maven.wagon.providers.http.httpclient.conn.ConnectTimeoutException: Connect to <ourhost>:<our port> [<our host>/<our IP>] failed: connect timed out at org.apache.maven.wagon.providers.http.httpclient.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:132) at org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute(MainClientExec.java:219) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute(RetryExec.java:86) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute(RedirectExec.java:108) at org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.execute(AbstractHttpClientWagon.java:832) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:983) ... 13 more Caused by: java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:239) at org.apache.maven.wagon.providers.http.httpclient.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123) ... 23 more We also twice got *GET request of: <full path to jar> from <our repository> failed* org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project <our module>: GET request of: <some-full-jar-pathname>.jar from <our repository> failed at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:363) at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:316) at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:285) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:97) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run(WagonTransporter.java:560) at org.eclipse.aether.transport.wagon.WagonTransporter.execute(WagonTransporter.java:427) at org.eclipse.aether.transport.wagon.WagonTransporter.get(WagonTransporter.java:404) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:447) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350) ... 4 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593) at sun.security.ssl.InputRecord.read(InputRecord.java:532) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:940) at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136) at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:195) at org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178) at org.apache.maven.wagon.providers.http.httpclient.conn.EofSensorInputStream.read(EofSensorInputStream.java:137) at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:531) at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:353) ... 13 more > Artifact download failures > -------------------------- > > Key: MRESOLVER-55 > URL: https://issues.apache.org/jira/browse/MRESOLVER-55 > Project: Maven Resolver > Issue Type: Bug > Components: resolver > Affects Versions: Maven Artifact Resolver 1.1.1 > Environment: Windows, Ubuntu > Reporter: Lasse Westh-Nielsen > Priority: Major > Fix For: waiting-for-feedback > > > Hey, > We often run Maven builds of [https://github.com/neo4j/neo4j] on machines > with cold caches/ empty ~/.m2/repository folders. > There are rather a lot of dependencies to download, so even though the > failure rate of individual artifact downloads is small, at our scale it > causes significant build failures. > I am working on seeding caches. Separately though it would be great to be > able to configure retries and timeouts for dependency downloads - optimise > for build throughput rather than latency as it were. > How do I do that? I can't find it documented anywhere, and trying to browse > "wagon" source code got me nowhere. > Regards, > Lasse > -- This message was sent by Atlassian JIRA (v7.6.3#76005)