[ https://issues.apache.org/jira/browse/MNG-7536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17653857#comment-17653857 ]
Michael Osipov commented on MNG-7536: ------------------------------------- bq. It's disappointing for a potential deadlock to be added to a point release and without clear notice of the circumstances that will lead to it, but what can we do? Welcome to software engineering. Sometimes well-meant changes have unforeseen side effects. I absolutely agree with this. I left into this trap too as your can see with the 3.8.x and something you simply cannot foresee all possible pitfalls. > Mojo execution locking in Maven 3.8.5 deadlocks my plugin > --------------------------------------------------------- > > Key: MNG-7536 > URL: https://issues.apache.org/jira/browse/MNG-7536 > Project: Maven > Issue Type: Bug > Affects Versions: 3.8.5, 3.8.6 > Reporter: David Elliott > Assignee: Guillaume Nodet > Priority: Major > Fix For: waiting-for-feedback, wontfix-candidate > > Attachments: thread-example.tar.gz > > > I have an existing mojo which stopped working in Maven 3.8.5 but had been > working for years. It looks like MNG-7156 is the cause. > This mojo looks through its dependencies for other reactor projects, then > looks at those projects for any plugin executions with a special phase name. > For all found executions, it executes them in a thread pool as part of some > other processing it is doing. > My plugin is proprietary and I am unable to share it, but I am able to share > a much smaller example illustrating the problem. > Being example code, it just spawns a thread to run the mojo executions and > attempts to join the thread. In the real code all executions for a given > project will run sequentially on one thread, but each project's work will be > scheduled concurrently on a thread pool. > I didn't feel it was necessary to use a thread pool and schedule more than > one project's executions for this example. The deadlock will occur simply by > running any mojo at all on a secondary thread while the calling thread is > running a mojo waiting for that secondary thread to complete. -- This message was sent by Atlassian Jira (v8.20.10#820010)