Ganesh Murthy created DISPATCH-887:
--------------------------------------

             Summary: Dispatch reestablishes connection inspite of deleting the 
connector
                 Key: DISPATCH-887
                 URL: https://issues.apache.org/jira/browse/DISPATCH-887
             Project: Qpid Dispatch
          Issue Type: Bug
          Components: Container
    Affects Versions: 1.0.0
            Reporter: Ganesh Murthy
            Assignee: Ganesh Murthy
             Fix For: 1.1.0


There is a race condition happening when a connector is deleted.

On connector delete, the following function is called 

{code}
void qd_connection_manager_delete_connector(qd_dispatch_t *qd, void *impl)
{
    qd_connector_t *ct = (qd_connector_t*) impl;
    if (ct) {
        sys_mutex_lock(ct->lock);
        if (ct->ctx && ct->ctx->pn_conn) {
            qd_connection_invoke_deferred(ct->ctx, deferred_close, 
ct->ctx->pn_conn);
        }
        sys_mutex_unlock(ct->lock);
        DEQ_REMOVE(qd->connection_manager->connectors, ct);
        qd_connector_decref(ct);
    }
}
{code}

The deferred_close() is invoked before qd_connector_decref() is invoked hence 
the connection's connector is still in place and the connector is 
re-established.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to