Crash on application using RFA C++ 770L1 and 771L1

Hi guys,
we're experiencing some crashes in an application of ours, based on RFA C++ 770L1.
Such application has been using RFA C++ 761L1 for years without issues, but after the upgrade to RFA C++ 770L1 (linked due to the rebranding), the application is experiencing regular crashes caused by the corruption of the stack of one of the application threads.
To double check our findings, we've tested several versions of the application, each of them rebuilt using both RFA C++ 770L1 and RFA C++ 761L1.
In all the cases, the application always crashed after few minutes using RFA C++ 770L1, whereas it has never crashed using RFA C++ 761L1 (days of runtime, currently still running).
We've also tried the latest RFA non-OMM version (771LI), unfortunately experiencing the same issue.
After a thorough but unsuccessful analysis, we've run the application under valgrind: when using RFA C++ 770L1 and 771L1, valgrind reports several warnings that are not present when using RFA C++ 761L1.
Those warnings are about invalid reads or writes occurring in the stack of one of the RFA threads, which might be relevant for this issue.
Could you please have a look on your side?
Let me know if I need to open a Support ticket for this.
Thanks
Best Regards,
Paolo
Please find here below the stacks in concern (with some polishing, removed re-occurrences of the same case):
Thread 5:
Invalid read of size 1
at 0x414E137: strtok (in /usr/lib/libc-2.17.so)
by 0x82FFD1B: rfa::sessionLayer::ServiceInfo::findNewsRic(rfa::common::RFA_String const&) const (in app_RFA_771L1.lx)
by 0x8290F82: rfa::sessionLayer::ItemRequest::processMarketDataItemEventImplMsg(rfa::sessionLayer::MarketDataItemEventImplMsg*) (in app_RFA_771L1.lx)
by 0x8287AC3: rfa::sessionLayer::ItemRequestMgr::processMarketDataItemEventImplMsg(rfa::sessionLayer::MarketDataItemEventImplMsg*) (in app_RFA_771L1.lx)
by 0x813CD24: rfa::sessionLayer::MarketDataSubscriberImpl::processMarketDataItemEventImplMsgEnum(rfa::support::SmartPtr<rfa::common::Message>&) (in app_RFA_771L1.lx)
by 0x814086B: rfa::sessionLayer::MarketDataSubscriberImpl::processResponseMsg(rfa::support::SmartPtr<rfa::common::Message>&) (in app_RFA_771L1.lx)
by 0x8126B05: rfa::sessionLayer::SessionImpl::dispatchResponseProcedure() (in app_RFA_771L1.lx)
by 0x81250F4: rfa::sessionLayer::SessionImpl_ResponseProcessingTimer::processTimerEvent() (in app_RFA_771L1.lx)
by 0x80CF6BB: RTREventNotifierImp::expireEvents() (in app_RFA_771L1.lx)
by 0x80CE61F: RTRSelectNotifier::enable() (in app_RFA_771L1.lx)
by 0x81277B1: rfa::sessionLayer::SessionImpl::runThread() (in app_RFA_771L1.lx)
by 0x81BA409: rfa::support::Thread::startWrapper(void*) (in app_RFA_771L1.lx)
Address 0xf6adb1a is on thread 7's stack
1058 bytes below stack pointer
Invalid read of size 1
at 0x402E5A8: strlen (vg_replace_strmem.c:461)
by 0x80A41ED: rfa::common::RFA_String::set(char const*, unsigned int, bool) (in app_RFA_771L1.lx)
by 0x80A46E8: rfa::common::RFA_String::operator=(char const*) (in app_RFA_771L1.lx)
by 0x82FFCD3: rfa::sessionLayer::ServiceInfo::findNewsRic(rfa::common::RFA_String const&) const (in app_RFA_771L1.lx)
by 0x8290F82: rfa::sessionLayer::ItemRequest::processMarketDataItemEventImplMsg(rfa::sessionLayer::MarketDataItemEventImplMsg*) (in app_RFA_771L1.lx)
by 0x8287AC3: rfa::sessionLayer::ItemRequestMgr::processMarketDataItemEventImplMsg(rfa::sessionLayer::MarketDataItemEventImplMsg*) (in app_RFA_771L1.lx)
by 0x813CD24: rfa::sessionLayer::MarketDataSubscriberImpl::processMarketDataItemEventImplMsgEnum(rfa::support::SmartPtr<rfa::common::Message>&) (in app_RFA_771L1.lx)
by 0x814086B: rfa::sessionLayer::MarketDataSubscriberImpl::processResponseMsg(rfa::support::SmartPtr<rfa::common::Message>&) (in app_RFA_771L1.lx)
by 0x8126B05: rfa::sessionLayer::SessionImpl::dispatchResponseProcedure() (in app_RFA_771L1.lx)
by 0x81250F4: rfa::sessionLayer::SessionImpl_ResponseProcessingTimer::processTimerEvent() (in app_RFA_771L1.lx)
by 0x80CF6BB: RTREventNotifierImp::expireEvents() (in app_RFA_771L1.lx)
by 0x80CE61F: RTRSelectNotifier::enable() (in app_RFA_771L1.lx)
Address 0xf6adb1f is on thread 7's stack
1053 bytes below stack pointer
Invalid read of size 1
at 0x40304C8: memcpy (vg_replace_strmem.c:1036)
by 0x80A42A6: rfa::common::RFA_String::set(char const*, unsigned int, bool) (in app_RFA_771L1.lx)
by 0x80A46E8: rfa::common::RFA_String::operator=(char const*) (in app_RFA_771L1.lx)
by 0x82FFCD3: rfa::sessionLayer::ServiceInfo::findNewsRic(rfa::common::RFA_String const&) const (in app_RFA_771L1.lx)
by 0x8290F82: rfa::sessionLayer::ItemRequest::processMarketDataItemEventImplMsg(rfa::sessionLayer::MarketDataItemEventImplMsg*) (in app_RFA_771L1.lx)
by 0x8287AC3: rfa::sessionLayer::ItemRequestMgr::processMarketDataItemEventImplMsg(rfa::sessionLayer::MarketDataItemEventImplMsg*) (in app_RFA_771L1.lx)
by 0x813CD24: rfa::sessionLayer::MarketDataSubscriberImpl::processMarketDataItemEventImplMsgEnum(rfa::support::SmartPtr<rfa::common::Message>&) (in app_RFA_771L1.lx)
by 0x814086B: rfa::sessionLayer::MarketDataSubscriberImpl::processResponseMsg(rfa::support::SmartPtr<rfa::common::Message>&) (in app_RFA_771L1.lx)
by 0x8126B05: rfa::sessionLayer::SessionImpl::dispatchResponseProcedure() (in app_RFA_771L1.lx)
by 0x81250F4: rfa::sessionLayer::SessionImpl_ResponseProcessingTimer::processTimerEvent() (in app_RFA_771L1.lx)
by 0x80CF6BB: RTREventNotifierImp::expireEvents() (in app_RFA_771L1.lx)
by 0x80CE61F: RTRSelectNotifier::enable() (in app_RFA_771L1.lx)
Address 0xf6adb1f is on thread 7's stack
1053 bytes below stack pointer
Best Answer
-
Yes, we need the API support team to replicate and investigate this issue.
Please submit this issue to the RDC support team via Contact Premium Support at Refinitiv Robust Foundation API (RFA) C++.
0
Answers
-
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 687 Datastream
- 1.4K DSS
- 622 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 255 ETA
- 557 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 276 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 680 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 105 UPA
- 194 TREP Infrastructure
- 229 TRKD
- 918 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 91 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 48 中文论坛