Status/Resolution/Reason: To Fix//NeedMoreInfo
Reporter/Name(from Bugbase): ANTTI K. / ()
Created: 02/01/2019
Components: Language, CF Component, Performance
Versions: 2016
Failure Type: Performance Issue
Found In Build/Fixed In Build: Adobe ColdFusion (2018 Release) Update 1 installed /
Priority/Frequency: Normal / Few users will encounter
Locale/System: / Win 2016
Vote Count: 5
Problem Description: When using implicit accessors and server is under heavy load, the implicit get accessor randomly fails with "Element OBJECT.PROPERTY is undefined" error message. This same issue has been posted to Adobe CF community forum as well: https://forums.adobe.com/message/10881920.
Steps to Reproduce:
1. Create a new ColdFusion application with the following files:
Application.cfc:
<cfcomponent output="false">
<cfset this.invokeImplicitAccessor = true />
</cfcomponent>
Person.cfc:
component accessors=true {
property string firstName;
}
index.cfm:
<cfscript>
local.person = new Person();
local.person.firstName = "Zachary";
for( local.i = 0; local.i < 1000; local.i++ ) {
local.j = local.person.firstName;
}
</cfscript>
index2.cfm:
<cfscript>
local.person = new Person();
local.person.firstName = "Zachary";
for( local.i = 0; local.i < 1000; local.i++ ) {
local.j = local.person.getFirstName();
}
</cfscript>
2. Test the index.cfm with JMeter, use 2000 threads, 10s Ram-Up Period and Loop count 1 (test plan: https://pastebin.com/nBtpL4zP). The for loops has been added to the implementation to make the page heavier. When testing, adjusting the thread count and loop variables according to the hardware used might be required, in order to reproduce the error.
Please note, that this simple example code requires 100-2000 threads to reproduce the error, but in our real application, which is far heavier than this single page app, the issue occurs even with couple of users as well.
Actual Result: In our tests the page always fails with the same error message:
"Element PERSON.FIRSTNAME is undefined in LOCAL.". The error % we are getting with the above settings usually falls somewhere between 8 to 10 %, meaning that 160 to 200 requests out of 2000 requests fails. Here is full error message: https://pastebin.com/budqiV1m.
Expected Result:When index2.cfm gets tested with the same settings, we don't get any errors, and this is the expected result.
Any Workarounds: Use generated accessors shown in example file index2.cfm.
Attachments:
Comments: