Tidy earlier fix and apply another - both follow the principle of not removing the link from session to client DCB when dcb_close is called for client DCB. The close will not fully complete, but will be finalised when the session is freed. At this time, no DCBs will be referring to the session. These measures protect the dcb->data in the client DCB from being lost until the session is no longer needed.
This commit is contained in:
@ -1166,9 +1166,7 @@ static int gw_backend_close(DCB *dcb)
|
||||
spinlock_release(&session->ses_lock);
|
||||
|
||||
/** Close client DCB */
|
||||
temp = session->client_dcb;
|
||||
session->client_dcb = NULL;
|
||||
dcb_close(temp);
|
||||
dcb_close(session->client_dcb);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user