Bug #533
tcpgate mode req_reply=1 in multiple calls on same connection id may loose to generate response
Status: | New | Start date: | 03/23/2020 | |
---|---|---|---|---|
Priority: | Normal (Code 4) | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | - | |||
Target version: | - |
Description
In persistent mode in sync by connection id, several parallel outgoing message callers may not get reply back due to
func XATMIDispatchCall(pool *XATMIPool, nr int, ctxData *atmi.TPSRVCTXDATA, buf *atmi.TypedUBF, cd int, releaseChan bool) { ... //If we work on sync way, only one data exchange over //The single channel, then lets add to id waiter list haveMConWaiter := false if MReqReply == RR_PERS_CONN_EX2NET { ac.TpLogInfo("Adding request to conn table, by "+ "comp_id: [%d]", con.id_comp) MConWaiterMutex.Lock() MConWaiter[con.id_comp] = &block <<<<< This is overwritten... MConWaiterMutex.Unlock() haveMConWaiter = true }
History
#1 Updated by Madars about 4 years ago
The issue may be overcome with having seqout=1 flag. This due to fact that outgoing connections must be serialized on particular connection to have single block.
Thus fix could be automatically setting seqout for connection mode 1