tracker issue : CF-3840599

select a category, or use search below
(searches all categories and all time range)
Title:

Prevent dumping an entity with lots of relations from causing OoM errors.

| View in Tracker

Status/Resolution/Reason: Closed/Withdrawn/CannotReproduce

Reporter/Name(from Bugbase): Peter Boughton / Peter Boughton (Peter Boughton)

Created: 10/17/2014

Components: Debugging, CFDump

Versions: 11.0

Failure Type: Memory Leak

Found In Build/Fixed In Build: CF11_Final /

Priority/Frequency: Major / All users will encounter

Locale/System: ALL / Platforms All

Vote Count: 0

Dumping variables from a non-trivial ORM application will causing a java.lang.OutOfMemoryError caused by too many levels of ORM relationships attempting to be resolved.

The only way to prevent the OoM error is by using the top attribute of cfdump/writedump, but even setting top as low as 3 or 4 can still causes crashes, and makes dealing with arrays and nested structs a massive PITA.

There should be a new dump attribute/argument for ormlevels, as well as a global default configurable in the admin, which determines how many levels of relationship should be resolved when dumping/serializing an ORM object.

----------------------------- Additional Watson Details -----------------------------

Watson Bug ID:	3840599

External Customer Info:
External Company:  
External Customer Name: boughtonp
External Customer Email:  
External Test Config: My Hardware and Environment details:

Attachments:

Comments:

For some of the apps that we have this does seem to work fine but looks like the app you have is far more complicated and detailed. Is there a chance you could attach an isolated reproducible case here ?
Comment by Vamseekrishna N.
10595 | October 29, 2014 12:20:29 AM GMT
It's a CRM - it's not particularly complicated, there's just plenty of properties/relationships. Extracting the relevant files into an isolated test case would take more time than I can spend on this right now, but here's a stack trace: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.io.CharArrayWriter.write(Unknown Source) at coldfusion.runtime.CharBuffer.replace(CharBuffer.java:37) at coldfusion.runtime.CharBuffer.replace(CharBuffer.java:50) at coldfusion.runtime.NeoBodyContent.write(NeoBodyContent.java:254) at cfdump2ecfm1068597382$funcDUMPCUSTOMFUNCTION.runFunction(/WEB-INF/cftags/dump.cfm:894) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2805) at cfdump2ecfm1068597382$funcDUMPOBJECT.runFunction(/WEB-INF/cftags/dump.cfm:1577) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2805) at cfdump2ecfm1068597382$funcRENDEROUTPUT.runFunction(/WEB-INF/cftags/dump.cfm:681) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2805) at cfdump2ecfm1068597382$funcDUMPARRAY.runFunction(/WEB-INF/cftags/dump.cfm:2079) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
Comment by External U.
10596 | October 29, 2014 04:34:54 AM GMT
Can you please provide more details about the issue? 1. jvm.config 2. Settings Summary 3. What kind of variable are you dumping? Is it XML/ServerScope/ApplicationScope? 4. Are you dumping variables in Application.cfm/Application.cfc? 5. When did you start observing this issue? 6. Have you recently migrated to ColdFusion 11? Regards, Nimit
Comment by Nimit S.
10597 | December 05, 2014 09:52:38 AM GMT
Hi Peter, Can you please provide an update on this issue? If you are still facing this issue then please provide the requested information.
Comment by Nimit S.
10598 | May 07, 2015 01:29:00 AM GMT
Hi Peter, We are closing this bug as we have not received any information. Please feel free to write back to us if you are still experiencing this issue and we will re-open this bug.
Comment by Nimit S.
10599 | August 03, 2015 08:36:33 AM GMT