Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    SmartClient 15.0d & 14.1p - Maximum call stack size exceeded error during XML serialization

    Environment
    • SmartClient Version: 15.0d (2025-04-15)
    • Previously working in: Version 12.1
    • Also reproducing in: Version 14.1p

    Issue Description

    I'm encountering a critical error in our application after upgrading from SmartClient 12.1 to 15.0d. The application is throwing a "Maximum call stack size exceeded" error during XML serialization when attempting to make server requests.


    Error Details

    ISC_Core.js?v=15.0d_2025-04-15:1473 *19:02:03.139:WARN:HLayout:isc_HLayout_0:Adding already drawn widget:isc_VLayout_1 to new parent:isc_HLayout_0. Child has been cleared so it can be drawn inside the new parent. This may be a result of autoDraw being enabled for the child.
    (anonymous) @ ISC_Core.js?v=15.0d_2025-04-15:1473Understand this warning
    ISC_Core.js?v=15.0d_2025-04-15:1473 *19:02:03.288:WARN:Log:RangeError: Maximum call stack size exceeded
    Stack from error.stack:
    ISC_Core.js?v=15.0d_2025-04-15:1315 Uncaught RangeError: Maximum call stack size exceeded
    at String.replace (<anonymous>)
    at Object.makeXMLSafe (ISC_Core.js?v=15.0d_2025-04-15:1315:858)
    at Object.makeXMLSafeAttribute (ISC_Core.js?v=15.0d_2025-04-15:1315:1036)
    at _3.isc_c_Comm__xmlOpenTag [as $36u] (ISC_DataBinding.js?v=15.0d_2025-04-15:66:35)
    at _3.isc_c_Comm__xmlSerializeObject [as $36t] (ISC_DataBinding.js?v=15.0d_2025-04-15:52:535)
    at _3.isc_c_Comm__xmlSerialize [as $ew] (ISC_DataBinding.js?v=15.0d_2025-04-15:50:17)
    at _3.isc_c_Comm__xmlSerializeObject [as $36t] (ISC_DataBinding.js?v=15.0d_2025-04-15:60:423)
    at _3.isc_c_Comm__xmlSerialize [as $ew] (ISC_DataBinding.js?v=15.0d_2025-04-15:50:17)
    at _3.isc_c_Comm_xmlSerialize [as xmlSerialize] (ISC_DataBinding.js?v=15.0d_2025-04-15:33:413)
    .
    .
    .
    at _3.isc_c_RPCManager_serializeTransaction [as serializeTransaction] (ISC_DataBinding.js?v=15.0d_2025-04-15:1609:13)
    at _3.isc_c_Comm_addTransactionToFields [as addTransactionToFields] (ISC_Core.js?v=15.0d_2025-04-15:2531:54)
    at _3.isc_c_Comm_sendXmlHttpRequest [as sendXmlHttpRequest] (ISC_Core.js?v=15.0d_2025-04-15:2515:27)
    at _3.isc_c_RPCManager__sendQueue [as $84s] (ISC_DataBinding.js?v=15.0d_2025-04-15:1640:79)
    at _3.isc_c_RPCManager_sendQueue [as sendQueue] (ISC_DataBinding.js?v=15.0d_2025-04-15:1612:87)
    at _3.isc_c_RPCManager_sendRequest [as sendRequest] (ISC_DataBinding.js?v=15.0d_2025-04-15:1548:218)
    at _3.isc_DataSource_performSCServerOperation [as performSCServerOperation] (ISC_DataBinding.js?v=15.0d_2025-04-15:2990:75)
    at _3.isc_DataSource_sendDSRequest [as sendDSRequest] (ISC_DataBinding.js?v=15.0d_2025-04-15:790:13)
    at _3.isc_DataSource_performDSOperation [as performDSOperation] (ISC_DataBinding.js?v=15.0d_2025-04-15:762:76)
    at _3.isc_DataSource_fetchData [as fetchData] (ISC_DataBinding.js?v=15.0d_2025-04-15:704:99)
    • Issue originates in makeXMLSafe method
    • Propagates through makeXMLSafeAttribute and various XML serialization methods
    • Ultimately affects the RPCManager when sending requests to the server

    The stack trace indicates a recursive loop in the XML serialization process, specifically when handling data for a server request.


    Steps to Reproduce

    The error occurs when the application attempts to make a server request. It appears to happen during the XML serialization process of the request data.


    Impact

    This is blocking our upgrade to SmartClient 15.0d as it prevents communication with the server, making the application unusable.


    Questions
    1. Is this a known issue with SmartClient 15.0d?
    2. Could this be related to circular references in our data objects being serialized?
    3. Are there any configuration changes or patches needed when upgrading from 12.1 to 15.0d?
    4. What debugging steps would you recommend to identify the specific data structure causing this error?

    #2
    1. Not a known issue. We don't have known issues, we just fix them.
    3. No, other than what's in the release notes

    2 & 4: you could have a looping data structure or you might have created a DataSource with the same name as a core DataSource (e.g. "Operation").

    The Debugging steps are the obvious ones:

    1. look at the data you're sending and see if there are looping structures

    2. pause execution during the runaway serialization and look at what's on the stack, so you can see the repeating frames. By looking at the arguments / callee you can figure out which DataSources are involved in the runaway serialization

    Comment


      #3
      I have upgraded smartclient 12.1 to 14.1p and also tried 15.0d
      it was working in 12.1 and i haven't made any changes to that implementation
      so are there specific step that i have to follow
      and every thing else is working fine.

      Comment


        #4
        It has always been the case, and is still the case, that when upgrading you have to follow the Installation instructions.

        If other things are working, then you likely did that part correctly. So again, move on to Debugging.

        Comment

        Working...
        X