Issues
- Duplicate sequence numbersFX-995Resolved issue: FX-995David Dight
- Excessive checks for TBB fail on latest builds of tbb.FX-994David Dight
- Logout not sent after sequence too low if in st_continuousFX-993David Dight
- build errorFX-992David Dight
- sdadsFX-991Resolved issue: FX-991David Dight
- Session.send can randomly fail but there is no error reported anywhere why it failedFX-990David Dight
- SSL certificate_fileFX-989David Dight
- Handle 0 return value from poco Net.StreamSocket correctly in FixReaderFX-988Resolved issue: FX-988David Dight
- Cannot create static libraryFX-987David Dight
- crash when receive logon messageFX-986Resolved issue: FX-986David Dight
- Is it possible to receive the messages from the server which doesn't use FIX8?FX-985Resolved issue: FX-985David Dight
- SessionManager<>::size() should be declared constFX-984Resolved issue: FX-984David Dight
- hftest fails on macOS with a non specific errorFX-983David Dight
- include/fix8/thread.hpp contains uses of the register keyword that is illegal in C++17FX-982Resolved issue: FX-982David Dight
- MessageBase should expose enough properties to support iteration like Message::printFX-981Resolved issue: FX-981David Dight
- FIX8 open source does not build on macOS 10.15 CatalinaFX-980Resolved issue: FX-980David Dight
- Segmentation fault in reader_execute with unstable connectionFX-979Resolved issue: FX-979David Dight
- Issue on MarketDataRequest Process in Server SessionFX-978Resolved issue: FX-978David Dight
- GroupPtr NoMDEntries generated with wrong number of elementsFX-957Resolved issue: FX-957Sergey Sedreev
- Aborted after call FIX8::Fix8ProInstance and exit with return XFX-954Resolved issue: FX-954Sergey Sedreev
- repeated connects and disconnects with test sessions failedFX-953Resolved issue: FX-953Sergey Sedreev
- application abortFX-950Resolved issue: FX-950Sergey Sedreev
- ufeconsts.hpp, ufestrings{hpp|cpp} are missing in install packageFX-948Resolved issue: FX-948Sergey Sedreev
- Lots of reader threadsFX-946Resolved issue: FX-946Sergey Sedreev
- Application crashes when tries to connect to a session which is already connected with some other appFX-944Resolved issue: FX-944Sergey Sedreev
- ClientSessionBase can't reconnect session after first start() attemptFX-942Resolved issue: FX-942Sergey Sedreev
- Fix8Pro build for Fedora 29FX-937David Dight
- Error on generationFX-932Resolved issue: FX-932David Dight
- Reliableclient does not try connection when it receives TCP conn resetFX-928David Dight
- Seqno not increased in logon for ReliableClientSessionFX-927David Dight
- make: error: recipe for target 'f8c', 'all-recursive' and 'all' failedFX-891Resolved issue: FX-891David Dight
- ReliableClientSession crashes on stopFX-885David Dight
- deadlock in heartbeat serviceFX-884David Dight
- makeFX-877Resolved issue: FX-877David Dight
- Build error on Ubuntu Xenial/Clang 5.0FX-858Resolved issue: FX-858David Dight
- Possible race on Session::_connection results in crashFX-855Resolved issue: FX-855Sergey Sedreev
- Getting error on compilationFX-849Resolved issue: FX-849David Dight
- What is the earliest point where I can take over the FIX raw message?FX-843Resolved issue: FX-843David Dight
- Add KVP support to other persistersFX-839Sergey Sedreev
- steroid chksum algorithm gives incorrect values for large messages.FX-821Resolved issue: FX-821David Dight
- Broken shared library version on LinuxFX-819Resolved issue: FX-819David Dight
- Not able to start the client session, built with Fix8 ProFX-809Resolved issue: FX-809David Dight
- f8c exits without any outputFX-806Resolved issue: FX-806Sergey Sedreev
- Create testing build for gcc 4.9 on centos 7FX-800Resolved issue: FX-800Sergey Sedreev
- Performance decoder skip check for mandatory fields in repeating groupsFX-758David Dight
- Session::Send() Sequence number types (int64_t -> unsigned int)FX-757Resolved issue: FX-757Sergey Sedreev
- f8c incorrectly removes unused fields from the top of fields listFX-744Resolved issue: FX-744David Dight
- saitest logs a lot of errorsFX-740Sergey Sedreev
- tag id greater then unsigned shortFX-734Resolved issue: FX-734David Dight
- Memory leak in class Configuration ?FX-729Resolved issue: FX-729David Dight
50 of 460
Duplicate sequence numbers
Fixed
Description
Environment
Alma9
Created 30 July 2024 at 09:16
Updated 30 July 2024 at 10:50
Resolved 30 July 2024 at 10:50
Activity
Show:
We have an issue with duplicate sequence numbers - occasionally an outgoing heartbeat message has the same sequence number as another outgoing message.
Apparently the cause is that we periodically call
call_hb_service
from one thread (our fix8 message loop thread), but send messages on other threads.You recommended to protect these operations with a common lock.
Currently, we are using session-scoped locks around calls to send, i.e. sending messages to different sessions in parallel is allowed and works fine.
However,
call_hb_service
is called for a bundle of sessions (i.e. all that are hadled by the same SessionManager), so we would have to replace the session-scoped lock with a global lock (or at least a SessionManager-scoped lock). I'm worried that this would have a significant performance impact (in production, we are connected to 30 sessions or more).Is there a solution to this dilemma (other than replacing
call_hb_service
with per-sessions calls toheartbeat_service
)?