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]