If you are using CFCONTENT with images or PDFs you will run into serious troubles with ColdFusion 10 Updater 14. These updater contains an upgrade of the IIS connector and will break your websites. This is known to be an issue with ColdFusion 11 and ColdFusion 10. The bug has been logged with Adobe as coldfusion 10 update 14. failed to load pdf document, but the issue goes far beyond PDFs.

Symptoms:

  • An URL use CFCONTENT tag to output a PDF or an image to the browser. If you have URL parameters attached to this URL it will fail to download.
  • Wireshark traces show that no binary data is send to the web browser. You only see a GET and some headers, but no content.

Workarounds:

  1. Replace Updater 14 connector DLL C:\ColdFusion10\config\wsconfig\[ID]\isapi_redirect.dll with the connector DLL from Updater 12.
  2. Uninstall CF 10 Updater 14

Repro case:

If you are using file based EHCache in Coldfusion you will run into serious troubles with ColdFusion 10 Updater 14 and your application goes down. You can find this case in bugtracker #3858286: CacheManager has been shut down error with Update 14. These updater contains an upgrade of EHCache library from version 2.5.1 to 2.6.6 to fix the bug #3339491: Upgrading Ehcache causes silent failure and unexpected behavior. You may have also seen that EHCache 2.6.6 is not available on EHCache download pages, but I do not know why yet. I guess it is sooo unstable that these version may has been removed.

Symptoms:

  • The CacheManager has been shut down. It can no longer be used.

Workarounds:

You may read the Microsft Article Reindex the WSUS Database. This article does not document that the command has changed under Windows 2012. If you are using Windows Internal Database (WID) for the WSUS database, you need to use the sqlcmd utility.

To use this script with Windows Internal Database, you should run the following command:

sqlcmd -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i WsusDBMaintenance.sql

or with logging to a file:

sqlcmd -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i WsusDBMaintenance.sql > WsusDBMaintenance.log 2>&1

Required:

This article explains how you are able to use the Microsoft JDBC Driver 4.0 for SQL Server under ColdFusion. The background why you should do this is the bug Macromedia database drivers leaking memory. This is a very serious bug as you can see in the linked article. Your servers will be very unstable if you run with the Adobe build in drivers for Microsoft SQL. Until today we have not found any single issue at all with the replaced drivers. It is really a drop in replacement without any side effect.

If you encode your structs or arrays to JSON in ColdFusion 10 you may see some strange and unexpected results happen. The reason is that ColdFusion is a type-less language and don't know anything about the type of a variable. This means all your variables are strings very first. But you need to have valid values for boolean or integers or floats.

ColdFusion cannot do this for you out of the box by today. What ColdFusion does is really stupid and causes a lot of unexpected troubles as CF has no idea about the variable type. It simply tries to find out what type of variable the value may be and converts it to these type. As always with automatism's they must and will fail! The problems you may face are the following:

There exists one or more webservice bugs in ColdFusion 10 that will leak all your memory over a very short amount of time. We build a SOAP based webservice with ColdFusion 8 + 10 that is not running stable at all for around 2 years now. First the issues we have seen in CF8 have been caused by the very outdated Axis 1.x version used under the hood, but later in CF10 Axis 2 was integrated and the issues should have been resolved by upgrading the Applications to this version. But SOAP is still a mess under ColdFusion 10 and very very unstable! We are in month 9 with CF10 analysis and gave up with useless Adobe Support.

We migrated our webservice to JSON output format now. Nothing else in the logic has been changed, only the output. The memory leak disappeared with JSON and the webservice runs smooth for several weeks now. Nothing has been changed on server configuration.

For about several months we are trying to figure out a bug with Adobe. Support is telling me they are unable to reproduce the issue as always. The problem is that the DataDirect Driver for Microsoft SQL that Adobe delivers with ColdFusion 10 and 11 product seems to have a major memory leak.

Heap with Adobe / DataDirect MsSQL Driver

Very high and bad memory usage compared to Microsoft driver. Memory usage will grow over longer period of time until system goes out of memory. CPU usage will also grow extremely over time to 50% or more where a normal load is 5-10% when the service is restarted. This is one extreme example:

Heap with Adobe / DataDirect MsSQL Driver (OutOfMemory)

We tried to access a remote webservice from a partner and they updated their certificate a few days ago. This request fails with an very unhelpful error message in ColdFusion.

Symptom:

  • ColdFusion CFHTTP is broken if you access a SSL site, but it worked in past.
  • ColdFusion CFDUMP says Connection Failure with I/O Exception: peer not authenticated
  • ColdFusion CFDUMP says I/O Exception: sun.security.validator.ValidatorException: PKIX path building failed: java.security.cert.CertPathBuilderException: Could not build a validated path.

Analysis:

Since intermediate certificates have been provided by the server it can only be the root level certificate. But there may exists other situations where the certificate chain my be incomplete and you get the same error. Verify this with SSLLabs or a certificate checker from a certificate authority very first. Be aware that they sometimes fail to show missing intermediate certificates.

Code for testing:

You may run a roaming profile environment with Eclipse and from time to time it may start up with an error message like Invalid Configuration Location telling you The configuration area at C:\Users\[username]\.eclipse\...\configuration could not be created. Please choose a writable location using the '-configuration' command line option.

The configuration area at C:\Users\[username]\.eclipse\...\configuration could not be created. Please choose a writable location using the '-configuration' command line option.

Symptom:

If you run ColdFusion in virtual machines under HyperV with dynamic memory enabled you may expierence that the ColdFusion services are not started after the server has booted up. The services are set to start automatically, but are failing to start at boot time with strange and unknown error messages in system event log. If you manually start them they fire up properly.

Application log