tracker issue : CF-4199617

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

ColdFusion service does not start with large cfclasses folder

| View in Tracker

Status/Resolution/Reason: Closed/Fixed/Fixed

Reporter/Name(from Bugbase): e-domizil License Team / e-domizil License Team ()

Created: 09/07/2017

Components: Core Runtime

Versions: 2016,2018

Failure Type: Non Functioning

Found In Build/Fixed In Build: Every build and CF version available / CF2016U12

Priority/Frequency: Normal / All users will encounter

Locale/System: ALL / Win 2012 Server x64

Vote Count: 1

Problem Description: We expierence startup issues of ColdFusion. This happens when the folders "C:\ColdFusion2016\cfusion\wwwroot\WEB-INF\cfclasses" has 50K or 75K class files cached. Than the service does not start.

Steps to Reproduce: Fill the instance folders "ColdFusion2016\cfusion\wwwroot\WEB-INF\cfclasses" with real life and reboot your server.

Actual Result: Some instances comes up, others not. The ones with an empty cfclasses folder are starting up, others not.

Expected Result: The windows service must ALWAYS start. CF can load the files in background after the service came up.

Any Workarounds: Delete the content of cfclasses folder or run "start-service cold*" and WAIT...

Attachments:

Comments:

Hi , I tried to reproduce the issue, but with no luck.   Can you try the attached CFM files in your environments and see if the service comes up on CF restart ? . Attached file 1 : cfc_files_generator.cfm  generates cfc files . Attached file 2 : class_file_generator.cfm  generate cfclass files by invoking generated files . Run this after running 1st file. Note : Keep the server timeout sufficient & check the location of generated file in cfc_files_generator.cfm   Alternatively you can provide me the repro code .   Regards, Nitin
Comment by Nitin K.
366 | September 29, 2017 12:06:02 PM GMT
First install 5 instances. Fill all instances with 50.000-200.000 class files. Start apache ab and put some load on the webserver. e.g 10 cfm requests per second on every instance. Keep the cpu at 100%. Now reboot the computer. The services will not start within 60 seconds and will timeout. If you are not aware of this issue you are not an admin of real life systems. I cannot share our code. Use google and you will find tons of people with the same problem. Cf product managers are also aware of this issue. So do not tell me this is not reproducible!
Comment by Alexander H.
367 | October 03, 2017 11:08:41 AM GMT
Hi Alexander, I have tried with 5 CF instances along 150000 class files per instance and it works perfectly fine. We tried it multiple times but unfortunately unable to repro this issue at our end. ColdFusion do not load class files located inside cfclasses directory on server startup. ColdFusion does lazy loading for cfclasses i.e. it loads class file in-memory only on the first request. So, it should not impact the server startup process in any way. However, we can further investigate to nail it down. Please provide the information mentioned below to further investigate this issue: 1. Settings summary for all ColdFusion instances. 2. JVM Heap size(Xms, Xmx and MaxMetaspaceSize). You can check jvm.config file located at <cf_install_root>/<instance_name>/bin. 3. Please share these log files.(server.log, couldfusion-out.log, coldfusion-error.log and exception.log) 4. Have you tried adding cfclasses directory to the antivirus's exclusion list? Thanks, Nimit
Comment by Nimit S.
368 | October 10, 2017 07:12:46 AM GMT
Hi Alexander, Can you please provide the requested information, asked in the previous comment?
Comment by Nimit S.
369 | October 13, 2017 03:44:15 AM GMT
Hi Alexander, Can you please provide the information as requested by Nimit ? Thanks, Nitin
Comment by Nitin K.
370 | October 30, 2017 06:48:56 AM GMT
Hey Alexander, did you ever get to confirm if this fixed the problem you experienced? For the sake of other readers who may come across this in the future and want to understand it, the problem was raised in 2017 and that's when the comments above took place. And Adobe marked it as "fixed" here as of CF2016 update 12, released in Sept 2019. If it's not clear in reading the back and forth, it seems Alexander's key point was that the failure to start was not JUST when the cfclasses was large, but when it was large AND there was load running against the CF instance as it started up (which he was simulating using Apache Bench). That point didn't seem to be acknowledged by the Adobe folks who commented afterward. But again somehow by Sept 2019 at least some problem was "fixed", and the bugs list for that update merely points to this bug report, so unless Adobe explains what was addressed, we won't know. Finally, FWIW, there's no mention of a similar "cfclasses" bug in the "bugs fixed" list for CF2018 update 5, also released in Sept 2019. I'd be curious to hear from Adobe as to whether somehow the problem was indeed unique to CF2016, or again Alexander, might you have been able to confirm whether the problem exists (per your testing) for CF2018?
Comment by Charlie A.
33167 | February 20, 2020 04:33:44 PM GMT
And sorry, I should have added also e-domizil L. (the "reporter") of the bug, in my first and last sentences. (I don't know if perhaps the two are the same person.) Also, when I opened asking whether "this fixed the problem", I should have clarified that I meant the CF2016 update 12. When I first wrote that comment, I had that question toward the bottom and thought it better to open with it, but then could added better context to it. Finally, if e-domizil L. and Alexander are indeed different people, then I'd wonder also if e-domizil L. was really experiencing the problem ONLY with a large number of cfclasses (which Adobe could not recreate) or ALSO with high load against CF as it was coming up, as Alexander pointed out. It's true that a large load request calling for different CFML files would indeed be loading their compiled classes upon the first request for each, and if Adobe was doing the restart without any load, they'd not have experienced the same strain.
Comment by Charlie A.
33168 | February 20, 2020 04:39:31 PM GMT