[cfaussie] ColdFusion IDE Survey
Hey guys, Got asked to pass this survey around on what IDE you use for ColdFusion, from Adobe. http://svy.mk/yEvFtH Mark -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en.
Re: [cfaussie] ColdFusion IDE Survey
that's not a real survey! where is the grid of 15 stupid questions with 10 radio buttons per question? :) z On Wed, Feb 22, 2012 at 2:41 PM, Mark Mandel mark.man...@gmail.com wrote: Hey guys, Got asked to pass this survey around on what IDE you use for ColdFusion, from Adobe. http://svy.mk/yEvFtH Mark -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- Zac Spitzer Solution Architect / Director Ennoble Consultancy Australia http://www.ennoble.com.au http://zacster.blogspot.com +61 405 847 168 -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en.
RE: [cfaussie] ColdFusion IDE Survey
Lol 2 questions? -Original Message- From: Zac Spitzer [mailto:zac.spit...@gmail.com] Sent: Wednesday, 22 February 2012 2:48 PM To: cfaussie@googlegroups.com Subject: Re: [cfaussie] ColdFusion IDE Survey that's not a real survey! where is the grid of 15 stupid questions with 10 radio buttons per question? :) z On Wed, Feb 22, 2012 at 2:41 PM, Mark Mandel mark.man...@gmail.com wrote: Hey guys, Got asked to pass this survey around on what IDE you use for ColdFusion, from Adobe. http://svy.mk/yEvFtH Mark -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- Zac Spitzer Solution Architect / Director Ennoble Consultancy Australia http://www.ennoble.com.au http://zacster.blogspot.com +61 405 847 168 -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en.
Re: [cfaussie] ColdFusion IDE Survey
Short and sweet. Perhaps they do learn from their mistakes... On Wed, Feb 22, 2012 at 12:01 PM, Steve Onnis st...@cfcentral.com.auwrote: Lol 2 questions? -Original Message- From: Zac Spitzer [mailto:zac.spit...@gmail.com] Sent: Wednesday, 22 February 2012 2:48 PM To: cfaussie@googlegroups.com Subject: Re: [cfaussie] ColdFusion IDE Survey that's not a real survey! where is the grid of 15 stupid questions with 10 radio buttons per question? :) z On Wed, Feb 22, 2012 at 2:41 PM, Mark Mandel mark.man...@gmail.com wrote: Hey guys, Got asked to pass this survey around on what IDE you use for ColdFusion, from Adobe. http://svy.mk/yEvFtH Mark -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- Zac Spitzer Solution Architect / Director Ennoble Consultancy Australia http://www.ennoble.com.au http://zacster.blogspot.com +61 405 847 168 -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en.
RE: [cfaussie] CF 9.01 memory leak - coldfusion.util.key
Dave, I've run that code on a 9.01 server, and run it over and over, and I am not finding there to be any leak. I know that's a frequent assertion made against CF. Let's see if we are on the same page about what I'm seeing versus what you are seeing. First of all, my CF instance never crashes, despite repeatedly running the request. If there was a leak, you'd not expect that, right? And my max heap size is only 400m for this test, so you'd think I'd hit that limit pretty fast, I suppose, right? More than that, I am watching the memory in the CF Server Monitor and FusionReactor, and while it does go up, it doesn't keep going up with each run. Again, that's what you'd expect if there was a leak, right? Finally, and most important, I never get any outofmemory errors in the CF console log. How about you? To be honest, unless I'm getting an outofmemory error that refers to either the heap or the GC overhead limit, I wouldn't myself worry about doing heap dumps, MAT analysis, nor would I have concern over a memory leak. But perhaps you DO get an OOM error eventually, or see the memory constantly climbing and then CF does crash. In that case, I wonder if the explanation is something else (since I don't get that error, while also running on CF9). Do you have the CF Server Monitor start memory tracking feature enabled? It doesn't matter if you don't have the monitor open. That's has no bearing. If you or anyone on that server ever turned it on, it stays on, even if the monitor interface is not displayed, and it also stays on over restarts. So since you're on CF 9.01, look in the CF Admin at the Monitor Settings page. Is the checkbox checked for enable memory tracking? If so, turn it off. Then restart CF, and try your test again. I only suggest restarting so that any objects still in memory are released, so you can try your test again. If this was the solution, then it may be simply that your CF8 server did not have it enabled. All this is a guess, but let us know what you find. /charlie arehart char...@carehart.org Providing fast, remote, on-demand troubleshooting services for CF (and CFBuilder) More at http://www.carehart.org/consulting -Original Message- From: cfaussie@googlegroups.com [mailto:cfaussie@googlegroups.com] On Behalf Of Dave Sent: Tuesday, February 21, 2012 10:38 PM To: cfaussie Subject: [cfaussie] CF 9.01 memory leak - coldfusion.util.key Hey all, I believe I had discovered/confirmed a memory leak in CF 9.01. We have a large application that ran for months at a time on CF 8.01, on CF9, we leak a few hundred MB each day. The application makes lots of use of structs/classes. Using MAT, we can see that a coldfusion.util.key is created of each and every struct member, but never cleaned up. Try the following test on a fresh re-started JVM: cfset transient = structNew() / cfloop from=1 to=100 index=index cfset transient[index] = true /cfloop Use VisualVM to force a GC, do a heap dump, then open the heap up and search for coldfusion.util.key - you will see 1,000,000 + of them. They will never be collected. The same code does not have this problem on CF8. Original CF bug: http://www.elliottsprehn.com/cfbugs/bugs/86893 (now removed???) New CF bug:https://bugbase.adobe.com/index.cfm?event=bugid=3119991 Is anyone else seeing this problem or needing to re-start their CF9.01 servers regularly to keep them running? -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en.
[cfaussie] Re: CF 9.01 memory leak - coldfusion.util.key
Thanks for your reply Charlie, I'm about to run out so don't have time for a proper reply, but try putting this code cfset transient = structNew() / cfset base = getTickCount() / cfloop from=1 to=1 index=index cfset transient[hash(#base##index#)] = true /cfloop cfoutput Done /cfoutput in a .cfm page under cf 9.01 and setting up jMeter with 2 threads running continually. Keep an eye on time in GC via VisualVM. Let it run for 2 minutes, stop Jmeter and force a GC. I see the oldGen is still at 100% usage and I get a GC every second, even with the test stopped. Will reply in depth later tonight. On Feb 22, 4:02 pm, charlie arehart charlie_li...@carehart.org wrote: Dave, I've run that code on a 9.01 server, and run it over and over, and I am not finding there to be any leak. I know that's a frequent assertion made against CF. Let's see if we are on the same page about what I'm seeing versus what you are seeing. First of all, my CF instance never crashes, despite repeatedly running the request. If there was a leak, you'd not expect that, right? And my max heap size is only 400m for this test, so you'd think I'd hit that limit pretty fast, I suppose, right? More than that, I am watching the memory in the CF Server Monitor and FusionReactor, and while it does go up, it doesn't keep going up with each run. Again, that's what you'd expect if there was a leak, right? Finally, and most important, I never get any outofmemory errors in the CF console log. How about you? To be honest, unless I'm getting an outofmemory error that refers to either the heap or the GC overhead limit, I wouldn't myself worry about doing heap dumps, MAT analysis, nor would I have concern over a memory leak. But perhaps you DO get an OOM error eventually, or see the memory constantly climbing and then CF does crash. In that case, I wonder if the explanation is something else (since I don't get that error, while also running on CF9). Do you have the CF Server Monitor start memory tracking feature enabled? It doesn't matter if you don't have the monitor open. That's has no bearing. If you or anyone on that server ever turned it on, it stays on, even if the monitor interface is not displayed, and it also stays on over restarts. So since you're on CF 9.01, look in the CF Admin at the Monitor Settings page. Is the checkbox checked for enable memory tracking? If so, turn it off. Then restart CF, and try your test again. I only suggest restarting so that any objects still in memory are released, so you can try your test again. If this was the solution, then it may be simply that your CF8 server did not have it enabled. All this is a guess, but let us know what you find. /charlie arehart char...@carehart.org Providing fast, remote, on-demand troubleshooting services for CF (and CFBuilder) More athttp://www.carehart.org/consulting -Original Message- From: cfaussie@googlegroups.com [mailto:cfaussie@googlegroups.com] On Behalf Of Dave Sent: Tuesday, February 21, 2012 10:38 PM To: cfaussie Subject: [cfaussie] CF 9.01 memory leak - coldfusion.util.key Hey all, I believe I had discovered/confirmed a memory leak in CF 9.01. We have a large application that ran for months at a time on CF 8.01, on CF9, we leak a few hundred MB each day. The application makes lots of use of structs/classes. Using MAT, we can see that a coldfusion.util.key is created of each and every struct member, but never cleaned up. Try the following test on a fresh re-started JVM: cfset transient = structNew() / cfloop from=1 to=100 index=index cfset transient[index] = true /cfloop Use VisualVM to force a GC, do a heap dump, then open the heap up and search for coldfusion.util.key - you will see 1,000,000 + of them. They will never be collected. The same code does not have this problem on CF8. Original CF bug:http://www.elliottsprehn.com/cfbugs/bugs/86893 (now removed???) New CF bug:https://bugbase.adobe.com/index.cfm?event=bugid=3119991 Is anyone else seeing this problem or needing to re-start their CF9.01 servers regularly to keep them running? -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en. -- You received this message because you are subscribed to the Google Groups cfaussie group. To post to this group, send email to cfaussie@googlegroups.com. To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en.
[cfaussie] Re: CF 9.01 memory leak - coldfusion.util.key
There are no error messages in production because we catch the problem before it gets that far. Using HP JMeter (and GC Logging) over a period of days, we can see Time in Full GC trend upwards, along with a reduction of free heap after full GC and reduction in GC interval. On the 16 gig heap we start @ 6 seconds per full GC with a 15 minute interval (for the first 1-2 days), down to 20 seconds per full GC every minute after around 2 weeks. Analysing Heap Dumps with MAT shows gigs of heap taken up by ColdFusion.util.key In my original test, I was talking about the fact that those classes remain on the heap even after the code has stopped and a full GC as taken place. (as viewable in a heap dump) But you are right, that’s not necessarily evidence of a memory leak. I’m as sceptical as you are about someone finding a real, obvious memory leak in a CF production release and I want to be proven wrong. However, this testing shows a memory leak on every CF9 box I try. Tracking memory usage is turned off. We use FusionReactor/jVisualVM/ HPJMeter for analysis. Try the following two slight variations in the same code. I use Apache JMeter with two threads in my testing. Test1.cfm cfset transient = structNew() / cfset base = getTickCount() / cfloop from=1 to=1 index=index cfset transient[hash(#base##index#)] = true /cfloop Test2.cfm cfset transient = structNew() / cfloop from=1 to=1 index=index cfset transient[hash(#index#)] = true /cfloop Test1.cfm will die (Error: GC Overhead limit exceeded) after only 1-2 minutes, whereas test 2 will run happily and never even see the OldGen. http://stackoverflow.com/questions/5898291/coldfusion-util-key-memory-leak-issue-with-structure-keys thinks it is a problem with CF Caching the upper case version of the struct key, and given the above test, I think he is right. The same problem exists using myStruct.key notation. On Feb 22, 4:02 pm, charlie arehart charlie_li...@carehart.org wrote: Dave, I've run that code on a 9.01 server, and run it over and over, and I am not finding there to be any leak. I know that's a frequent assertion made against CF. Let's see if we are on the same page about what I'm seeing versus what you are seeing. First of all, my CF instance never crashes, despite repeatedly running the request. If there was a leak, you'd not expect that, right? And my max heap size is only 400m for this test, so you'd think I'd hit that limit pretty fast, I suppose, right? More than that, I am watching the memory in the CF Server Monitor and FusionReactor, and while it does go up, it doesn't keep going up with each run. Again, that's what you'd expect if there was a leak, right? Finally, and most important, I never get any outofmemory errors in the CF console log. How about you? To be honest, unless I'm getting an outofmemory error that refers to either the heap or the GC overhead limit, I wouldn't myself worry about doing heap dumps, MAT analysis, nor would I have concern over a memory leak. But perhaps you DO get an OOM error eventually, or see the memory constantly climbing and then CF does crash. In that case, I wonder if the explanation is something else (since I don't get that error, while also running on CF9). Do you have the CF Server Monitor start memory tracking feature enabled? It doesn't matter if you don't have the monitor open. That's has no bearing. If you or anyone on that server ever turned it on, it stays on, even if the monitor interface is not displayed, and it also stays on over restarts. So since you're on CF 9.01, look in the CF Admin at the Monitor Settings page. Is the checkbox checked for enable memory tracking? If so, turn it off. Then restart CF, and try your test again. I only suggest restarting so that any objects still in memory are released, so you can try your test again. If this was the solution, then it may be simply that your CF8 server did not have it enabled. All this is a guess, but let us know what you find. /charlie arehart char...@carehart.org Providing fast, remote, on-demand troubleshooting services for CF (and CFBuilder) More athttp://www.carehart.org/consulting -Original Message- From: cfaussie@googlegroups.com [mailto:cfaussie@googlegroups.com] On Behalf Of Dave Sent: Tuesday, February 21, 2012 10:38 PM To: cfaussie Subject: [cfaussie] CF 9.01 memory leak - coldfusion.util.key Hey all, I believe I had discovered/confirmed a memory leak in CF 9.01. We have a large application that ran for months at a time on CF 8.01, on CF9, we leak a few hundred MB each day. The application makes lots of use of structs/classes. Using MAT, we can see that a coldfusion.util.key is created of each and every struct member, but never cleaned up. Try the following test on a fresh re-started JVM: cfset transient = structNew() / cfloop from=1 to=100 index=index cfset transient[index] = true /cfloop Use VisualVM to force a
[cfaussie] Re: CF 9.01 memory leak - coldfusion.util.key
There are no error messages in production because we catch the problem before it gets that far. Using HP JMeter (and GC Logging) over a period of days, we can see Time in Full GC trend upwards, along with a reduction of free heap after full GC and reduction in GC interval. On the 16 gig heap we start @ 6 seconds per full GC with a 15 minute interval (for the first 1-2 days), down to 20 seconds per full GC every minute after around 2 weeks. Analysing Heap Dumps with MAT shows gigs of heap taken up by ColdFusion.util.key In my original test, I was talking about the fact that those classes remain on the heap even after the code has stopped and a full GC as taken place. (as viewable in a heap dump) But you are right, that’s not necessarily evidence of a memory leak. I’m as sceptical as you are about someone finding a real, obvious memory leak in a CF production release and I want to be proven wrong. However, this testing shows a memory leak on every CF9 box I try. Tracking memory usage is turned off. We use FusionReactor/jVisualVM/ HPJMeter for analysis. Try the following two slight variations in the same code. I use Apache JMeter with two threads in my testing. Test1.cfm cfset transient = structNew() / cfset base = getTickCount() / cfloop from=1 to=1 index=index cfset transient[hash(#base##index#)] = true /cfloop Test2.cfm cfset transient = structNew() / cfloop from=1 to=1 index=index cfset transient[hash(#index#)] = true /cfloop Test1.cfm will die (Error: GC Overhead limit exceeded) after only 1-2 minutes, whereas test 2 will run happily and never even see the OldGen. http://stackoverflow.com/questions/5898291/coldfusion-util-key-memory-leak-issue-with-structure-keys thinks it is a problem with CF Caching the upper case version of the struct key, and given the above test, I think he is right. The same problem exists using myStruct.key notation. On Feb 22, 4:02 pm, charlie arehart charlie_li...@carehart.org wrote: Dave, I've run that code on a 9.01 server, and run it over and over, and I am not finding there to be any leak. I know that's a frequent assertion made against CF. Let's see if we are on the same page about what I'm seeing versus what you are seeing. First of all, my CF instance never crashes, despite repeatedly running the request. If there was a leak, you'd not expect that, right? And my max heap size is only 400m for this test, so you'd think I'd hit that limit pretty fast, I suppose, right? More than that, I am watching the memory in the CF Server Monitor and FusionReactor, and while it does go up, it doesn't keep going up with each run. Again, that's what you'd expect if there was a leak, right? Finally, and most important, I never get any outofmemory errors in the CF console log. How about you? To be honest, unless I'm getting an outofmemory error that refers to either the heap or the GC overhead limit, I wouldn't myself worry about doing heap dumps, MAT analysis, nor would I have concern over a memory leak. But perhaps you DO get an OOM error eventually, or see the memory constantly climbing and then CF does crash. In that case, I wonder if the explanation is something else (since I don't get that error, while also running on CF9). Do you have the CF Server Monitor start memory tracking feature enabled? It doesn't matter if you don't have the monitor open. That's has no bearing. If you or anyone on that server ever turned it on, it stays on, even if the monitor interface is not displayed, and it also stays on over restarts. So since you're on CF 9.01, look in the CF Admin at the Monitor Settings page. Is the checkbox checked for enable memory tracking? If so, turn it off. Then restart CF, and try your test again. I only suggest restarting so that any objects still in memory are released, so you can try your test again. If this was the solution, then it may be simply that your CF8 server did not have it enabled. All this is a guess, but let us know what you find. /charlie arehart char...@carehart.org Providing fast, remote, on-demand troubleshooting services for CF (and CFBuilder) More athttp://www.carehart.org/consulting -Original Message- From: cfaussie@googlegroups.com [mailto:cfaussie@googlegroups.com] On Behalf Of Dave Sent: Tuesday, February 21, 2012 10:38 PM To: cfaussie Subject: [cfaussie] CF 9.01 memory leak - coldfusion.util.key Hey all, I believe I had discovered/confirmed a memory leak in CF 9.01. We have a large application that ran for months at a time on CF 8.01, on CF9, we leak a few hundred MB each day. The application makes lots of use of structs/classes. Using MAT, we can see that a coldfusion.util.key is created of each and every struct member, but never cleaned up. Try the following test on a fresh re-started JVM: cfset transient = structNew() / cfloop from=1 to=100 index=index cfset transient[index] = true /cfloop Use VisualVM to