You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Willem Verstraeten <wi...@gmail.com> on 2009/09/16 11:04:38 UTC

File resolver problems

Hello,

I've got a problem when building a multi-module project with Ivy.

I have one 'core' modules, and two other modules which directly depend
on this 'core' module.

I use the <ivy:buildlist/> and <subant/> tasks to kick off the buids
for each of these projects in the correct order (as in the
multi-module tutorial). Each build publishes the artifacts of their
modules to the same file resolver, which is explicitely set to publish
atomically.

Now for the problem:
The build of the 'core' module always succeeds to publish its
artifacts to the repository. The build of the first dependent module
however sometimes fails to retrieve the artifacts from the repository
and gives the strangest error reports. The build of the second module
then *does* succeed to get the artifacts from the repository.

Below one sort of error message:

[ivy:resolve] 		[FAILED     ] mycorp#core#development;9.1.51!core.jar:
size of source file
/tmp/repository/product/mycorp/core/development/9.1.51/jars/core.jar(4481919)
differs from size of dest file
/home/hudson/.ivy2/cache/mycorp/core/development/jars/core-9.1.51.jar.part(0)
- please retry (8ms)
[ivy:resolve] 		[FAILED     ]
mycorp#core#development;9.1.51!core_resources.jar: impossible to move
part file to definitive one:
/home/hudson/.ivy2/cache/mycorp/core/development/jars/core_resources-9.1.51.jar.part
-> /home/hudson/.ivy2/cache/mycorp/core/development/jars/core_resources-9.1.51.jar
(54ms)
[ivy:resolve] 		[FAILED     ] mycorp#core#development;9.1.51!core.jar:
size of source file
/tmp/repository/product/mycorp/core/development/9.1.51/jars/core.jar(4481919)
differs from size of dest file
/home/hudson/.ivy2/cache/mycorp/core/development/jars/core-9.1.51.jar.part(0)
- please retry (8ms)
[ivy:resolve] 	==== luciad.product.release: tried
[ivy:resolve] 	
/tmp/repository/product/mycorp/core/development/9.1.51/jars/core.jar
[ivy:resolve] 		[FAILED     ]
mycorp#core#development;9.1.51!core_resources.jar: impossible to move
part file to definitive one:
/home/hudson/.ivy2/cache/mycorp/core/development/jars/core_resources-9.1.51.jar.part
-> /home/hudson/.ivy2/cache/mycorp/core/development/jars/core_resources-9.1.51.jar
(54ms)
[ivy:resolve] 	==== luciad.product.release: tried
[ivy:resolve] 	
/tmp/repository/product/mycorp/core/development/9.1.51/jars/core_resources.jar
[ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] 		::              FAILED DOWNLOADS            ::
[ivy:resolve] 		:: ^ see resolution messages for details  ^ ::
[ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] 		:: mycorp#core#development;9.1.51!core.jar
[ivy:resolve] 		:: mycorp#core#development;9.1.51!core_resources.jar
[ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]

So in this session it complains about some file sizes. Note that the
core module has three jars: core.jar, core_resources.jar and
core_samples.jar. It only complains about the first two jars, the
samples jars seems to be OK. At other times I get the same kind of
messages, but then only for the resources jar and the samples jar. In
other words, rather unpredictable.

And here another kind of error messages, this time about SHA1 hashes
being wrong:

[ivy:resolve] :: problems summary ::
[ivy:resolve] :::: WARNINGS
[ivy:resolve] 		[FAILED     ] mycorp#core#development;9.1.64!core.jar:
invalid sha1: expected=74c42c66ff98890c1681cb5954037b8eb527b5f7
computed=18ac3859ea65dda07e946eba34d4564af7de6d2e (519ms)
[ivy:resolve] 		[FAILED     ]
mycorp#core#development;9.1.64!core_resources.jar: invalid sha1:
expected=f61efe185d6522a08c39322cde44368a7e94b3e0
computed=c8d6c5b58253b03944a44a706d1332d1a15f5f38 (48ms)
[ivy:resolve] 		[FAILED     ] mycorp#core#development;9.1.64!core.jar:
invalid sha1: expected=74c42c66ff98890c1681cb5954037b8eb527b5f7
computed=18ac3859ea65dda07e946eba34d4564af7de6d2e (519ms)
[ivy:resolve] 	==== luciad.product.release: tried
[ivy:resolve] 	
/var/lib/ivy/repository/product/mycorp/core/development/9.1.64/jars/core.jar
[ivy:resolve] 		[FAILED     ]
mycorp#core#development;9.1.64!core_resources.jar: invalid sha1:
expected=f61efe185d6522a08c39322cde44368a7e94b3e0
computed=c8d6c5b58253b03944a44a706d1332d1a15f5f38 (48ms)
[ivy:resolve] 	==== luciad.product.release: tried
[ivy:resolve] 	
/var/lib/ivy/repository/product/mycorp/core/development/9.1.64/jars/core_resources.jar
[ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] 		::              FAILED DOWNLOADS            ::
[ivy:resolve] 		:: ^ see resolution messages for details  ^ ::
[ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] 		:: mycorp#core#development;9.1.64!core.jar
[ivy:resolve] 		:: mycorp#core#development;9.1.64!core_resources.jar
[ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::



I've tried adding a small delay (5 seconds) after the publish step of
the 'core' module, to no avail. Also I get the same errors when
running these builds in Hudson (where Hudson is configured to kick of
the build of the dependent project when the 'core' project has
finished building), and since Hudson uses different OS-processes per
build, I don't think it is a threading-issue inside the Ivy code.

The only thing I can think of is that some information in the cache
directory has gotten corrupt.

Does anyone have a clue as to what could be wrong here and how I could
fix/work around this ?

Thanks for any feedback,
Willem