Move responsibility for closing DCB on error to router error handling. Check that routers remove or disable links to closed DCB.

This commit is contained in:
counterpoint
2015-09-09 09:33:00 +01:00
parent 2e50dfd484
commit f6916a23bd
10 changed files with 89 additions and 85 deletions

View File

@ -415,7 +415,6 @@ static int gw_read_backend_event(DCB *dcb) {
session->state = SESSION_STATE_STOPPING;
spinlock_release(&session->ses_lock);
ss_dassert(dcb->dcb_errhandle_called);
dcb_close(dcb);
rc = 1;
goto return_rc;
}
@ -488,8 +487,6 @@ static int gw_read_backend_event(DCB *dcb) {
session->state = SESSION_STATE_STOPPING;
spinlock_release(&session->ses_lock);
}
ss_dassert(dcb->dcb_errhandle_called);
dcb_close(dcb);
rc = 0;
goto return_rc;
}
@ -912,8 +909,6 @@ static int gw_error_backend_event(DCB *dcb)
session->state = SESSION_STATE_STOPPING;
spinlock_release(&session->ses_lock);
}
ss_dassert(dcb->dcb_errhandle_called);
dcb_close(dcb);
retblock:
return 1;
@ -1144,7 +1139,6 @@ gw_backend_hangup(DCB *dcb)
session->state = SESSION_STATE_STOPPING;
spinlock_release(&session->ses_lock);
}
ss_dassert(dcb->dcb_errhandle_called);
retblock:
return 1;
@ -1324,8 +1318,6 @@ static int backend_write_delayqueue(DCB *dcb)
spinlock_acquire(&session->ses_lock);
session->state = SESSION_STATE_STOPPING;
spinlock_release(&session->ses_lock);
ss_dassert(dcb->dcb_errhandle_called);
dcb_close(dcb);
}
}
}