Bug #533

tcpgate mode req_reply=1 in multiple calls on same connection id may loose to generate response

Added by Madars over 1 year ago. Updated over 1 year ago.

Status:NewStart date:03/23/2020
Priority:NormalDue date:
Assignee:-% Done:


Target version:-


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)
                MConWaiter[con.id_comp] = &block <<<<< This is overwritten...
                haveMConWaiter = true


#1 Updated by Madars over 1 year 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

Also available in: Atom PDF