Runwar deadlocks when using Lucee server warmup flag
Description
The latest version of the Lucee warmup calls System.exit() from inside of the server start method (which is synchronized) which fires the shutdown hook, running the server stop method in another thread (which is also synchronized). This causes a deadlock as both threads are waiting on each other.
I've spent some time researching the issue, but haven't settled on the best solution yet.
Activity
Show:
Brad Wood March 18, 2020 at 8:55 PM
For now I’ve unsynchronized a couple methods so they won’t deadlock. I can’t find a scenario in which they would overlap in a bad way. I’ve also added a couple extra null checks to prevent errors on early shutdown and tweaked the logging to get rid of unnecessary error messages.
Fixed
Pinned fields
Click on the next to a field label to start pinning.
The latest version of the Lucee warmup calls System.exit() from inside of the server start method (which is synchronized) which fires the shutdown hook, running the server stop method in another thread (which is also synchronized). This causes a deadlock as both threads are waiting on each other.
I've spent some time researching the issue, but haven't settled on the best solution yet.