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)