David Elliott created MNG-7536:
----------------------------------

             Summary: 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.6, 3.8.5
            Reporter: David Elliott
         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)

Reply via email to