MXS-2448: Assert that connection counts never go negative

The connections should never go below zero. It seems that at least pers_01
test suffers from this.
This commit is contained in:
Markus Mäkelä 2019-05-09 13:04:35 +03:00
parent 567ad9b8b8
commit d2e49c9591
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19

View File

@ -1254,7 +1254,8 @@ void dcb_final_close(DCB* dcb)
// This is now a DCB_ROLE_BACKEND_HANDLER.
// TODO: Make decisions according to the role and assert
// TODO: that what the role implies is preset.
mxb::atomic::add(&dcb->server->stats.n_current, -1, mxb::atomic::RELAXED);
MXB_AT_DEBUG(int rc = ) mxb::atomic::add(&dcb->server->stats.n_current, -1, mxb::atomic::RELAXED);
mxb_assert(rc > 0);
}
if (dcb->fd > 0)
@ -1357,7 +1358,8 @@ static bool dcb_maybe_add_persistent(DCB* dcb)
dcb->nextpersistent = dcb->server->persistent[owner->id()];
dcb->server->persistent[owner->id()] = dcb;
mxb::atomic::add(&dcb->server->stats.n_persistent, 1);
mxb::atomic::add(&dcb->server->stats.n_current, -1, mxb::atomic::RELAXED);
MXB_AT_DEBUG(int rc = ) mxb::atomic::add(&dcb->server->stats.n_current, -1, mxb::atomic::RELAXED);
mxb_assert(rc > 0);
return true;
}
else if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER && dcb->server)