InvalidUsageException at FieldListInt::shallowMorph

LtDoolittle6
LtDoolittle6 Contributor

Our customer
has reported a crash in RFA API. What is the possible cause of this issue?

The stack trace
looks like this:

KERNELBASE.dll!RaiseException+0x3D 
MSVCR120.dll!_CxxThrowException+0xB3
RFA8_Common120_x64.dll!rfa::common::InvalidUsageExceptionImpl::throwInvalidUsageExceptionImpl+0x158 c:\projects\rfaut\rfaut8.0\common\exception\impl\invalidusageexceptionimpl.cpp line 34
RFA8_Common120_x64.dll!rfa::common::InvalidUsageException::throwInvalidUsageException+0x1B c:\projects\rfaut\rfaut8.0\common\exception\impl\invalidusageexception.cpp line 32
RFA8_Data120_x64.dll!rfa::data::FieldListInt::shallowMorph+0x24B c:\projects\rfasl\rfasl8.0\data\fieldlistint.h line 166
RFA8_Data120_x64.dll!rfa::message::RespMsgInt::setDataInt+0x251 c:\projects\rfasl\rfasl8.0\data\impl\respmsgint.cpp line 95
RFA8_Data120_x64.dll!rfa::message::RespMsgTranslator::decode+0x49C c:\projects\rfasl\rfasl8.0\data\impl\respmsgtranslator.cpp line 571
RFA8_Connections_OMM120_x64.dll!rfa::sessionLayer::OMMItemEvent::getMsg+0xD6 c:\projects\rfasl\rfasl8.0\connections\connections_omm\eventsandmessages\impl\ommitemevent.cpp line 101
RFAProvider.dll!RFAClient::processOMMItemEvent+0x1E c:\build\buildagent\workspace\root\integration\providers\rfaprovider\main\release\base\integration\providers\rfaprovider\rfaclient.cpp line 908
RFAProvider.dll!RFAClient::processEvent+0x1DE c:\build\buildagent\workspace\root\integration\providers\rfaprovider\main\release\base\integration\providers\rfaprovider\rfaclient.cpp line 810
RFA8_Common120_x64.dll!rfa::common::EventQueueImpl::dispatch+0x133 c:\projects\rfaut\rfaut8.0\common\event\impl\eventqueueimpl.cpp line 260
RFAProvider.dll!RFAClient::dispatchThread+0x8F c:\build\buildagent\workspace\root\integration\providers\rfaprovider\main\release\base\integration\providers\rfaprovider\rfaclient.cpp line 1256
RFAProvider.dll!RFAClient::dispatchThreadStatic+0x9 c:\build\buildagent\workspace\root\integration\providers\rfaprovider\main\release\base\integration\providers\rfaprovider\rfaclient.cpp line 1283
Tagged:

Best Answer

  • The Stack trace indicates that
    RFA received invalid message data from network and cannot decode data so it
    threw the Invalid Usage exception.

    To investigate the issue,
    received messages need to be verified, once the issue reoccurs. Please enable
    and provide us the RSSL tracing message which contains raw data received from
    network.

    Below are RFA configurations to
    enable the RSSL tracing. You may need to change the Connection_RSSL to the RSSL
    connection name used in the configuration. The RSSL tracing file would be
    generated with name format: “<Connection name>_<process id>.xml” in
    the same directory of the application.

    \Connections\Connection_RSSL\traceMsgToFile
    = true

    \Connections\Connection_RSSL\traceMsgDomains
    = "all"

    \Connections\Connection_RSSL\traceMsgMaxMsgSize
    = 10000000

    \Connections\Connection_RSSL\traceMsgMultipleFiles
    = true

    In the past, I have found similar issue. Typically, payload of MarketPrice domain model needs to
    be Field List data type, so RFA expects to receive the Field List as payload
    for MarketPrice domain. In that issue, ADS has sent update message
    containing non field list data, so it causes the issue in consumer side.