Status/Resolution/Reason: Closed/Won't Fix/LowImpact
Reporter/Name(from Bugbase): marc esher / marc esher (marcesher)
Created: 12/10/2012
Components: Performance
Versions: 9.0.1
Failure Type: Memory Leak
Found In Build/Fixed In Build: 9.0.1 /
Priority/Frequency: Major / All users will encounter
Locale/System: English / Windows 7
Vote Count: 0
Problem Description:
When using java.util.concurrent Executor classes on ColdFusion 9, the CFC instances are kept in the thread and not released. Ultimately the system runs out of memory
Steps to Reproduce:
The attached self-contained project includes code in Application.cfc that creates the java.util.concurrent Executor. The code in index.cfm creates instances of a simple CFC, uses javaloader to create a dynamic proxy, and then submits the proxies to the Executor
Actual Result:
The objects are retained in memory. The attached .png file shows an instance of these objects with its path to the GC root.
Using the included JMeter test plan, I ran several thousand requests, and all of those instances accumulate in memory. After a few runs, CF runs out of memory. GC does not help.
Stopping the application (use the "stop" link) will shut down the executor, and at that time the instances are released from memory.
Expected Result:
These instances should not be retained in memory.
Any Workarounds: None that I know of. Unfortunately, this renders my CFConcurrent project (https://github.com/marcesher/cfconcurrent) effectively useless on CF 9.
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 3419777
External Customer Info:
External Company:
External Customer Name: marcesher
External Customer Email:
External Test Config: My Hardware and Environment details: This is on Windows 7, CF 9.0.1 64 bit. I've tried with the built-in JRE and also a JDK7 jre, to the same effect
Attachments:
- December 10, 2012 00:00:00: 1_executor_service_bug.zip
Comments: