Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 356195

Summary: No root cause in log if download fails due to network problems
Product: z_Archived Reporter: Tobias Oberlies <t-oberlies>
Component: TychoAssignee: Tobias Oberlies <t-oberlies>
Status: RESOLVED FIXED QA Contact:
Severity: minor    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Tobias Oberlies CLA 2011-08-30 09:07:36 EDT
If a download of a p2 artifact fails erratically (I presume a network problem, because a rebuild fixed the issue), there is no information in the log about the root cause. The message "Could not download artifacts from any repository" could be misunderstood as "the artifact doesn't exist" rather than "the artifact couldn't be transferred". These cases should be distinguished.
Comment 1 Tobias Oberlies CLA 2013-06-24 11:49:32 EDT
With change https://git.eclipse.org/r/#/c/9333/ a failed download will lead to an exception with the full multi-status of the download. For the first failure, even the stack trace of p2 is shown as root cause.

Example for a download that failed because both pack200 and canonical format were broken:

org.eclipse.tycho.repository.local.MirroringArtifactProvider$MirroringFailedException: Could not mirror artifact osgi.bundle,com.jcraft.jsch,0.1.46.v201205102330 into the local Maven repository: All attempts to read artifact osgi.bundle,com.jcraft.jsch,0.1.46.v201205102330 failed: [An error occurred while transferring artifact osgi.bundle,com.jcraft.jsch,0.1.46.v201205102330 from repository file:/C:/Env/Source/Tycho/tycho-testbed/repository: [An error occurred copying file C:\Env\Source\Tycho\tycho-testbed\repository\plugins\com.jcraft.jsch_0.1.46.v201205102330.jar.pack.gz.]; An error occurred while transferring artifact osgi.bundle,com.jcraft.jsch,0.1.46.v201205102330 from repository file:/C:/Env/Source/Tycho/tycho-testbed/repository: [An error occurred copying file C:\Env\Source\Tycho\tycho-testbed\repository\plugins\com.jcraft.jsch_0.1.46.v201205102330.jar.]]
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadArtifact(MirroringArtifactProvider.java:212)
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.makeOneFormatLocallyAvailable(MirroringArtifactProvider.java:197)
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.makeLocallyAvailable(MirroringArtifactProvider.java:168)
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.getArtifactFile(MirroringArtifactProvider.java:112)
	at org.eclipse.tycho.repository.p2base.artifact.provider.CompositeArtifactProvider.getArtifactFile(CompositeArtifactProvider.java:70)
	at org.eclipse.tycho.p2.target.TargetPlatformImpl.getLocalArtifactFile(TargetPlatformImpl.java:167)
	at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.addArtifactFile(P2ResolverImpl.java:178)
	at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.toResolutionResult(P2ResolverImpl.java:152)
	at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:133)
	at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:81)
	at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.doResolvePlatform(P2TargetPlatformResolver.java:374)
	at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.resolveDependencies(P2TargetPlatformResolver.java:350)
	at org.eclipse.tycho.core.resolver.DefaultTychoDependencyResolver.resolveProject(DefaultTychoDependencyResolver.java:109)
	at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:82)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:273)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
	... 11 more
Caused by: java.io.FileNotFoundException: C:\Env\Source\Tycho\tycho-testbed\repository\plugins\com.jcraft.jsch_0.1.46.v201205102330.jar.pack.gz (The system cannot find the file specified)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:120)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.copyFileToStream(SimpleArtifactRepository.java:641)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:666)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:590)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:723)
	at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyMirror(RepositoryArtifactProvider.java:168)
	at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyFormatAvailableInRepository(RepositoryArtifactProvider.java:151)
	at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnySource(RepositoryArtifactProvider.java:136)
	at org.eclipse.tycho.repository.p2base.artifact.provider.CompositeArtifactProviderBaseImpl.getArtifact(CompositeArtifactProviderBaseImpl.java:52)
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadCanonicalArtifact(MirroringArtifactProvider.java:231)
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadMostSpecificNeededFormatOfArtifact(MirroringArtifactProvider.java:224)
	at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadArtifact(MirroringArtifactProvider.java:208)
	... 26 more
Comment 2 Tobias Oberlies CLA 2013-07-08 05:32:31 EDT
This problem is fixed as part of this larger commit: http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/commit/?id=9fa0c707522eb0dcf37be2cec4d6a99d6c9bb484