[ 
https://issues.apache.org/jira/browse/MDEPLOY-172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17965706#comment-17965706
 ] 

Olivier Lamy commented on MDEPLOY-172:
--------------------------------------

This project has moved from Jira to GitHub Issues. This issue was migrated to 
[apache/maven-deploy-plugin#353|https://github.com/apache/maven-deploy-plugin/issues/353].
 

> Concurrency problem with deployAtEnd in parallel builds
> -------------------------------------------------------
>
>                 Key: MDEPLOY-172
>                 URL: https://issues.apache.org/jira/browse/MDEPLOY-172
>             Project: Maven Deploy Plugin (Moved to GitHub Issues)
>          Issue Type: Bug
>          Components: deploy:deploy
>    Affects Versions: 2.8.1
>            Reporter: Hermann Josef Hill
>            Assignee: Robert Scholte
>            Priority: Major
>             Fix For: 2.8.2
>
>         Attachments: deploy-plugin.patch
>
>
> In the method {{execute()}} of the class {{DeployMojo}}, the counter 
> {{readyProjectsCounter}} is used to find the last project to be deployed. 
> Unfortunately the counter is incremented *before* the deployment request is 
> added to the queued {{deployRequests}}. This may lead to a race condition 
> where requests are added to {{deployRequests}} after the execution of the 
> queued requests. When this happens to a module that should be deployed, it 
> will *not* be deployed.
> Example scenario:
> Think of a parallel build of a reactor with only two modules A and B where 
> the execution of the deploy plugin for module A is stopped by a context 
> change directly after the line that sets {{projectsReady}}. The counter 
> {{readyProjectsCounter}} is now one step before the "finish line".
> If the deploy plugin for module B is executed now, it will set 
> {{projectsReady}}, enqueue its own deployment request and then execute all 
> enqueued deployment requests. The deployment request for A is not enqueued at 
> this point, so it can't be executed - and the deploy plugin for module A 
> won't execute it because it thinks "it will be executed later".
> Granted, the window of vulnerability is rather small, but such bugs tend to 
> bite you unexpectedly...



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to