tracker issue : CF-4203997

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

Implicit get accessor fails under heavy load

| View in Tracker

Status/Resolution/Reason: To Fix//BugVerified

Reporter/Name(from Bugbase): ANTTI K. / ()

Created: 02/01/2019

Components: CFComponent, 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: 2

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:

I can confirm this behavior. It's is not consistent, it is working 8 times out of 10. This should be a very high priority for Adobe to figure out and fix. BTW this is ColdFusion 2016 with latest update and JVM, and as far as I can tell it start happening after deploying update 7
Vote by M M.
30172 | February 01, 2019 03:56:26 PM GMT