Closed andysCaplin closed 6 months ago
@andysCaplin Thank you for letting us know about this issue, we will look into it.
This has now happened to a customer in production who was not running under valgrind.
@andysCaplin awaiting details from you via email to investigate further.
The channel life-cycle information is below.
The application is calling channel close in the callback. It's always done that and there has been no problem but I can see how it could cause an issue. I'll raise a upasrc issue to change this.
This may be the cause of all the symptoms - i.e. upasrc calling the channel close API in the callback.
2024/04/06-14:05:51.448610 +0000: (upasrc-load-1): INFO: [RTO]: ETA Reactor: Login status code <State: Closed/Suspect/Not entitled - text: "Force Logout from DACS.">, user name <> client id <GE-WFZQ23
YKLIWE>
2024/04/06-14:05:51.448629 +0000: (upasrc-load-1): INFO: ETA: Application closing channel (0x7f3b74183910), reason - Login stream not open
2024/04/06-14:05:51.448675 +0000: (upasrc-load-1): INFO: Channel resubscribe: Queuing 2944 subscribe event(s) for channel
2024/04/06-14:05:51.511432 +0000: (upasrc-load-1): INFO: ETA: Name: RWFFld,Domain: RSSL_DMT_DICTIONARY, stream: [00003] Msg Class: RDM_DC_MT_STATUS, <State: Closed/Suspect/None - text: "Login stream was closed.">
2024/04/06-14:05:51.511447 +0000: (upasrc-load-1): INFO: ETA: Name: RWFEnum,Domain: RSSL_DMT_DICTIONARY, stream: [00004] Msg Class: RDM_DC_MT_STATUS, <State: Closed/Suspect/None - text: "Login stream was closed.">
2024/04/06-14:05:51.511459 +0000: (upasrc-load-1): ERROR: ETA Reactor: defaultMsgCallback: Ignoring message received after channel 0x7f3b74183910 was closed, thr 0x427d550 message 0x7f3cf2a78960
...
...
I cannot reproduce this on-site.
However it has been noticed by our customer when using our consumer application.
I think the reason I cannot reproduce is that I only have access to a limited number of instruments on RTO. The customer has access to 1000's of RIC's across 5 channels.
I’ll close this issue. It can be reopened if you are able to reproduce it.
Binary info
Application: ETA consumer application Library version: ETA PACKAGE eta3.7.3.E1 rrg VERSION eta3.7.3.1 Tue Feb 20 21:30:28 CST 2024
Issue
I run my application under valgrind to detect any memory issues.
When I do this I sometimes get an error handling an update and I close the channel using
rsslReactorCloseChannel()
. I also remove the read events and except events for the channel.However after I close the channel and before I try to reconnect I sometimes get a
defaultMsgCallback()
on that channel. I would have expected that if a channel is closed I would never get a message from that channel again until I reconnect it.This is all happening on the same thread, i.e. the channel close and the subsequent message callback.
This only ever happens under valgrind.