Close DCB in handleError only if it can be found in a backend reference.

This commit is contained in:
Martin Brampton
2015-09-17 11:58:19 +01:00
parent 91dd3bb9bd
commit 583c9b62fe

View File

@ -4878,6 +4878,7 @@ static void handleError (
CHK_BACKEND_REF(bref); CHK_BACKEND_REF(bref);
bref_clear_state(bref, BREF_IN_USE); bref_clear_state(bref, BREF_IN_USE);
bref_set_state(bref, BREF_CLOSED); bref_set_state(bref, BREF_CLOSED);
dcb_close(backend_dcb);
} }
else else
{ {
@ -4934,7 +4935,6 @@ static void handleError (
break; break;
} }
} }
dcb_close(backend_dcb);
} }
@ -4961,6 +4961,7 @@ static void handle_error_reply_client(
CHK_BACKEND_REF(bref); CHK_BACKEND_REF(bref);
bref_clear_state(bref, BREF_IN_USE); bref_clear_state(bref, BREF_IN_USE);
bref_set_state(bref, BREF_CLOSED); bref_set_state(bref, BREF_CLOSED);
dcb_close(backend_dcb);
} }
if (sesstate == SESSION_STATE_ROUTER_READY) if (sesstate == SESSION_STATE_ROUTER_READY)
@ -5048,6 +5049,7 @@ static bool handle_error_new_connection(
DCB_REASON_NOT_RESPONDING, DCB_REASON_NOT_RESPONDING,
&router_handle_state_switch, &router_handle_state_switch,
(void *)bref); (void *)bref);
dcb_close(backend_dcb);
router_nservers = router_get_servercount(inst); router_nservers = router_get_servercount(inst);
max_nslaves = rses_get_max_slavecount(myrses, router_nservers); max_nslaves = rses_get_max_slavecount(myrses, router_nservers);