Description of problem: TempFileProviderService threads consume high CPU. TempFileProviderService threads consume high CPU as they poll their non empty task queue. This is ultimately due to a flaw in the JDK ThreadPoolExecutor code (https://bugs.openjdk.java.net/browse/JDK-8129861), impacting ScheduledThreadPoolExecutors that use a core size of 0 and a default 0 keepalive timeout. While the executor queue is not empty, the executor does not allow the pool to go below 1 thread. So the one remaining work thread keeps looping over its poll call with a 0 timeout. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. Use the attached byteman script to force work to the TempFileProviderService threads. 2. Deploy and undeploy an app 3. Actual results: A TempFileProviderService thread consumes high CPU while polling the queue Expected results: No high CPU usage from TempFileProviderService threads Additional info:
Created attachment 1089218 [details] WFCORE-1093.btm
PR: https://github.com/jbossas/jboss-eap/pull/2614
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions
Verified with EAP 6.4.10.CP.CR2
Retroactively bulk-closing issues from released EAP 6.4 cummulative patches.