Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
2.2
-
None
-
linux + make debug + mysql 5.6
Description
we add debug log in kill_func
static bool kill_func(DCB *dcb, void *data) |
{
|
KillInfo* info = (KillInfo*)data;
|
|
if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER && |
dcb->session->ses_id == info->target_id)
|
{
|
MySQLProtocol* proto = (MySQLProtocol*)dcb->protocol;
|
MXS_DEBUG("dcb:%p find client threadid:%lu, with backend threadid:%lu", dcb, info->target_id, proto->thread_id); |
info->targets.push_back(std::make_pair(dcb->server, proto->thread_id));
|
}
|
|
return true; |
}
|
there output:(6) (kill_func): dcb:0x1c25180 find client threadid:5, with backend threadid:0
now the backend dcb real proto->thread_id= 0, lead to not kill the connection and client can exec sql again.
i think there backend dcb proto->thread_id should be != 0.