Deadlock resulting POST calls to web service CFC| View in Tracker
Problem Description: We migrated some weeks ago from ColdFusion 11 to ColdFusion 2016. In one of our applications, we publish web services by means of POST calls to CFCs. The web services had been running for years, without major incident, on ColdFusion 11. However, recently, on ColdFusion 2016, one of the calls has resulted in deadlock. The 3 threads involved are: ajp-nio-8034-exec-3 ajp-nio-8034-exec-4 ajp-nio-8034-exec-8 See attached pictures. Apparently, thread 3 waits for an object of type coldfusion.xml.rpc.SkeletonClassLoader. The object is held by thread 8. Thread 4 is waiting for an object that is held by thread 3. In turn, thread 8 is waiting for an object that is held by thread 3. Hence the deadlock. See "FusionReactor_deadlock_log.txt" The deadlock symptoms are: Server 500 status High CPU usage Continually running request, with high request runtime (the 3 threads ran for over an hour, then we decided to restart the Coldfusion instance. We use Fusionreactor to monitor the server, and found out that the threads failed to respond to suspend or kill commands from FusionReactor. Our server uses JsessionID by default. We noticed that the deadlock was caused by the only web service call for which ColdFusion failed to generate a JsessionID. See the calls between 11:15 and 11:16 in the attached file "webservice calls - sm2_imports_1.txt". Steps to Reproduce: We are unable to reproduce this because the deadlock involves Java code within the ColdFusion engine. Actual Result: Cyclical deadlock resulting from 3 threads within ColdFusion's web service engine. Expected Result: Web service POST call to a CFC, without any deadlock. Any Workarounds: None known, besides restarting the ColdFusion instance.