Status/Resolution/Reason: Closed/Withdrawn/
Reporter/Name(from Bugbase): Michael Dawson / Michael Dawson (Michael)
Created: 06/23/2009
Components: Language, CustomTag
Versions: 9.0
Failure Type: Unspecified
Found In Build/Fixed In Build: 0000 /
Priority/Frequency: Trivial / Unknown
Locale/System: English / Win All
Vote Count: 1
Duplicate ID: CF-3036819
Problem:
Custom Tag Paths Chosen Arbitrarily
Several months ago, we rebuilt our primary web site to migrate from ASP to CF. I chose to use Application.cfc for this project. Using the per-application settings, I created two mappings and two custom tag paths.
We use a custom tag "wwwpage" that builds the header and footer of every page on our primary web site. There is also have a script that will email me any errors as they happen. This script will also display a "Sorry" page to the user.
Ever since we put this site in production, we would receive errors stating that ColdFusion could not find the custom tag "wwwpage". It would not happen every time the page was requested, therefore, we had no consistency on which to begin debugging.
This web server also has another site that still uses global settings in the CF administrator. That site, "Acelink", also uses Application.cfm since it was built many moons ago. It still runs on pre-CF8 legacy code.
In the CF Admin, I have a custom tag path that points to the root of the acelink web site directory. Again, this is because of the legacy code that runs Acelink.
We spent five hours debugging this sporadic issue and we believe we have found a possible cause: ColdFusion does not always respect the order of per-application custom tag paths in conjunction with global custom tag paths.
This is how we replicated the problem:
In Firefox, I loaded 55 links in separate tabs. I would then refresh all tabs. Each time I would do this, I would average about three errors out of the 55 tabs. The errors said ColdFusion could not find the wwwpage custom tag.
In the custom tag, I added a CFMAIL block that would mail me the value of getCurrentTemplatePath() in the subject of the email message. I then copied the wwwpage custom tag to the root of the Acelink web site.
When I would refresh the 55 tabs, in Firefox, none of them would produce errors. However, when I looked at the subjects of the email messages, I could see from which directory the custom tag was called.
Again, each time I would refresh the 55 tabs, about three of them would be called from the Acelink directory rather than the proper custom tag directory.
This is what I think is happening now:
Request A: CF checks the custom tag paths in this order:
(1) E:\WebSites\www.evansville.edu\Extensions\CustomTags
(2) D:\Inetpub\AceLink
Request A works because the wwwpage custom tag should be found in the directory noted by (1).
Request B: CF checks the custom tag paths in this order:
(1) D:\Inetpub\AceLink
(2) E:\WebSites\www.evansville.edu\Extensions\CustomTags
Request B fails because CF, for some reason, decided to arbitrarily change the order in which it reads the custom tag paths.
We worked around this problem by copying the custom tag to both locations, however, this is not good and I think it a serious problem.
I'm currently experiencing this issue with CF8 on our production server, but I'm sure this is also an issue with CF9 (my test server crashed, so I can't prove it).
I marked this bug as "Serious" because I think it needs to be patched for CF8 users immediately as well as rolled into the CF9 release.
I have another test case with ColdFusion's quirk of reordering keys in a structure. https://applybeta.evansville.edu/
Refresh this URL several times and you will see how CF randomly re-orders the structure keys. I'm assuming this bug is somehow related.
Method:
Result:
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 3038996
External Customer Info:
External Company:
External Customer Name: Michael Dawson
External Customer Email: 361B0A9E44763038992016B8
External Test Config: 06/23/2009
Attachments:
Comments: