Add to or take from persistent pool only if server is running; add conditions to DCB close in read-write handleError to check backend reference was in use.

This commit is contained in:
Martin Brampton
2015-09-17 12:53:59 +01:00
parent 583c9b62fe
commit 357c4bcae5
2 changed files with 18 additions and 5 deletions

View File

@ -1881,6 +1881,7 @@ dcb_maybe_add_persistent(DCB *dcb)
&& strlen(dcb->user)
&& dcb->server
&& dcb->server->persistpoolmax
&& (dcb->server->status & SERVER_RUNNING)
&& !dcb->dcb_errhandle_called
&& !(dcb->flags & DCBF_HUNG)
&& (poolcount = dcb_persistent_clean_count(dcb, false)) < dcb->server->persistpoolmax)
@ -2815,6 +2816,8 @@ dcb_persistent_clean_count(DCB *dcb, bool cleanall)
if (cleanall
|| persistentdcb-> dcb_errhandle_called
|| count >= server->persistpoolmax
|| persistentdcb->server == NULL
|| !(persistentdcb->server->status & SERVER_RUNNING)
|| (time(NULL) - persistentdcb->persistentstart) > server->persistmaxtime)
{
/* Remove from persistent pool */