Since updating from 1.13 to 1.15 my pipeline job sometimes hangs after a process executed with a "bat" step finished successfully (checked with process explorer, process (qmake.exe in my case) is no longer in the process list).
Creating a pipeline thread dump shows that DSL.bat() is still executing, failing to finish and not advancing to the next step. Linux DSL.sh() (which is run in parallel in my script) is not affected.
The problem occurs on master and on slaves. Additionally its seems to be a race condition as my build pipeline will stuck at different steps (but always DSL.bat() steps).
Restoring version 1.13 solved the issue for me.
Downgraded: Durable Task Plugin, Pipeline, Pipeline: Basic Steps, Pipeline: Durable Task Step, Pipeline: Global Shared Library for CPS pipeline, Pipeline: Groovy CPS Execution, and Pipeline: Step API.
There are some pipeline plug ins still on 1.15 which I'm not able to downgrade (Jenkins plug in manager offers me to "restore" 1.15). These plug ins are Pipeline: API, Pipeline: Execution Support, Pipeline: Job, and Pipeline: SCM Step)