« Return to Thread: Synchronization issue with parallel downloads

Re: Synchronization issue with parallel downloads

by brettporter :: Rate this Message:

Reply to Author | View in Thread

Thanks for pointing this out. I'll take a closer look tomorrow.

My initial thoughts:
- we might need to double check if it occurs more often on windows due  
to timing variance (I expect that got much less testing than others :)
- it was odd in the output that there seemed to be a lot of downloads  
without any 'xK downloaded' line underneath in the output of this  
particular build
- need to check how often this can be reproduced (I'll throw some  
ludicrous concurrency level at it here to try and reproduce).

The exception below is in Plexus, which hasn't been upgraded for some  
time - it seems an odd place to occur and hopefully we just need to  
synchronize the wagon lookup. If it requires fixes to Plexus, then  
this will be pretty much shot :(

Cheers,
Brett

On 22/02/2009, at 1:06 AM, Benjamin Bentmann wrote:

> Hi,
>
> seems like our fears have come true, Hudson just spit out the first  
> issue that seems to be caused by the introduction of the parallel  
> artifact resolution:
>
>> [java] java.util.ConcurrentModificationException
>> [java] at java.util.LinkedList
>> $ListItr.checkForComodification(LinkedList.java:552)
>> [java] at java.util.LinkedList$ListItr.next(LinkedList.java:488)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .converters
>> .lookup
>> .DefaultConverterLookup
>> .findConverterForType(DefaultConverterLookup.java:113)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .converters
>> .lookup
>> .DefaultConverterLookup
>> .lookupConverterForType(DefaultConverterLookup.java:92)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .converters
>> .ComponentValueSetter.initSetter(ComponentValueSetter.java:92)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .converters.ComponentValueSetter.<init>(ComponentValueSetter.java:62)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .converters
>> .composite
>> .ObjectWithFieldsConverter
>> .processConfiguration(ObjectWithFieldsConverter.java:134)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .BasicComponentConfigurator
>> .configureComponent(BasicComponentConfigurator.java:56)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .AbstractComponentConfigurator
>> .configureComponent(AbstractComponentConfigurator.java:54)
>> [java] at  
>> org
>> .codehaus
>> .plexus
>> .component
>> .configurator
>> .AbstractComponentConfigurator
>> .configureComponent(AbstractComponentConfigurator.java:47)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .manager
>> .DefaultWagonManager.configureWagon(DefaultWagonManager.java:1058)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .manager
>> .DefaultWagonManager.configureWagon(DefaultWagonManager.java:1038)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .manager.DefaultWagonManager.getRemoteFile(DefaultWagonManager.java:
>> 418)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:
>> 372)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:
>> 327)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .resolver
>> .DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216)
>> [java] at  
>> org
>> .apache
>> .maven
>> .artifact
>> .resolver
>> .DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90)
>> [java] at  
>> org.apache.maven.artifact.resolver.DefaultArtifactResolver
>> $ResolveArtifactTask.resolveArtifact(DefaultArtifactResolver.java:
>> 453)
>> [java] at  
>> org.apache.maven.artifact.resolver.DefaultArtifactResolver
>> $ResolveArtifactTask.run(DefaultArtifactResolver.java:434)
>> [java] at  
>> edu
>> .emory
>> .mathcs
>> .backport
>> .java
>> .util
>> .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:
>> 1061)
>> [java] at  
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:575)
>> [java] at java.lang.Thread.run(Thread.java:534)
>
> The corresponding build [0] appears to be hanging after this error.
>
>
> Benjamin
>
>
> [0] https://grid.sonatype.org/ci/job/Maven-2.1.x-bootstrap/jdk=1.4,label=windows/104/console
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@...
> For additional commands, e-mail: dev-help@...
>

--
Brett Porter
brett@...
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@...
For additional commands, e-mail: dev-help@...

 « Return to Thread: Synchronization issue with parallel downloads