Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Deadlock in ColdFusion 8.0.1

New Here ,
Jun 07, 2010 Jun 07, 2010

I've discovered a deadlock in ColdFusion 8.0.1 when requesting a WSDL & CFM file at the same time.

Full details and steps to reproduce are on my companies blog.

http://blog.izilla.com.au/2010/06/07/deadlock-in-coldfusion-801/

I've filed a bug in http://cfbugs.adobe.com/ but it's not showing.  Does the bugtracker accept CF 8 bugs?

Cheers,

Aaron

903
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jun 08, 2010 Jun 08, 2010

Firstly... brilliant write up of your issue.  Everyone who posts here should be forced to read how you've raised this issue so they know how to do it.  I'm so fed up with people raising issues that basically say "my code doesn't work.  Why?", without posting either their code or the actual error message, or offering any evidence that they have done anything by way of troubleshooting, and pretty much coming across like they're sitting in front of their PC with drool slowly running out the side of their mouth whilst they slowly rock backwards and forwards, making a gurgling noise.

Secondly... when I run your test I don't see any problem.  Nothing locks up, I just get jmeter banging away making requests, all of which finish in a timely fashion with a 200-OK.  I see no evidence of deadlocks.  Do I need to be looking at something else?

I'm running                  8,0,1,195765 Enterprise multiserver install on a Win2k3 Std 32-bit server.

--

Adam

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jun 08, 2010 Jun 08, 2010
LATEST

Thanks for your comments Adam.  A lot of work went in to that post.  Our client is a high-profile high-traffic Australian site, so at times I have the luxury of having the time to spend on complex issues.  It would me much appreciated if you could leave a comment on the blog, it’s looking quite baron at the moment

The one big thing I missed in my post was the system configuration (I’ll update the post in the morning when I get in to work)

Production configuration:

Windows Server 2003 32bit – IIS 6

Coldfusion 8.0.1 (no hotfixes) 8,0,1,195765  ,Enterprise, Multiserver

JRun connector is configured per-site

JDK 1.6.0_17

Xeon 2 core + Hyperthreading  ( > 1 year old)

-         this is the machine where it occurs naturally

Development machine

Windows 7 x64

Coldfusion 8.0.1  (tested with and without hotfix 4) 8,0,1,195765  ,Enterprise, Multiserver x64

Jdk 1.6.0_17 x64

IIS 7

JRun connector is configured per-site

Core 2 duo

- this machine replicated the problem with the production code and also the synthetic example

After reading your post I retested using the JDK shipped with ColdFusion (1.6.0_4) and I could still replicate the problem.

SeeFusion is installed on both configurations.  Removing this locally still produced the problem

Template Cache is off on both machines, turning it on still produced the deadlock, although I would suggest having it off to better match our configuration.

There are some bugs in the JMeter test I supplied.  The ThreadGroup for the templateCache node is set to run for 60 seconds, this should be 600 seconds to match the other 2 thread groups - although the deadlock should occur within 30 seconds.  Also the CFM Request node has the server set to “cfdeadlock” this should be removed so it inherits the HTTP Request Defaults.

Finally, make sure you have set the correct password in clearTemplateCache.cfm 

To easily detect the deadlock I use seefusion, when the request time is in the order of 5 to 60 seconds I know that it has deadlocked.  If I manually request a page through a web browser the web browser just sits there loading.  When it does deadlock JMeter does not show you anything to indicate a deadlock.

If you’re not running a multi-core machine this may be the issue.

After all that I assume it still won’t work for you, so we must look at the test it’s self.

While developing the synthetic test the number of classes (cfc’s) loaded by each request was an important factor.  I had to increase the number of unique cfc’s created by the CFM request  (14 at the moment)  and the number of unique cfc’s returned by the various web service methods. With a low number of cfc’s the error did not happen. With a large number of cfc’s ColdFusion will be spending more time in the class loader, increasing the chances of a deadlock.  I suspect that a larger number of cfc’s in the Web Service request will have a bigger impact then a large number in the CFM request, but you should still increase the number in both.  I assume that simply creating the same cfc many times won’t work.

Good luck & keep me posted.

Cheers,

Aaron


Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources