Wei Chen created IVY-1388:
-----------------------------

             Summary: *.lck files created by "artifact-lock" lock strategy are 
not cleaned up if ivy quits abruptly
                 Key: IVY-1388
                 URL: https://issues.apache.org/jira/browse/IVY-1388
             Project: Ivy
          Issue Type: Bug
    Affects Versions: 2.3.0-RC1, 2.2.0, trunk
            Reporter: Wei Chen


We have a few build processes running in parallel, all of which share the same 
ivy cache. In order not to run into any parallel downloading problems, we 
enabled artifact-lock lock strategy. An annoying problem with the artifact-lock 
strategy is that the *.lck files which are created as a lock are not cleaned up 
if the build exits abruptly. For example, while ivy is downloading a big jar, 
if you Ctrl-C to quit that build process. Those lock files will remain in the 
metadatas folder. The same happens too if ivy encounters some error and fails 
the build.

Those uncleaned lock files will cause problem when you start the build again. 
The build process will hang while ivy waiting those "locks" to be released, 
which will never happen automatically. So eventually the build will fail with 
an ivy error "impossible to acquire lock for xxxyyyzzzz". What makes it worse 
is that ivy doesn't fail-fast on the default 2 miuntes lock timeout, it seems 
trying it a few times. In worst scenarios, we have seen the build hangs for 12 
minutes and then timeout'd and failed.

We believe this can be fixed by setting deleteOnExit() for the 
FileBasedLockStrategy.java class. We have implemented the fix and it works well.

Patch is provided, could anyone quickly apply this one line change?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to