Bug#49025: mysqld-debug: missing DBUG_RETURN or DBUG_VOID_RETURN macro in function "?func"
The problem was that the dbug facility was being used after the per-thread dbug state had already been finalized. The was present in a few functions which invoked decrement_handler_count, which in turn invokes my_thread_end on Windows. In my_thread_end, the per-thread dbug state is finalized. Any use after the state is finalized ends up creating a new state. The solution is to process the exit of a function before the decrement_handler_count function is called. sql/mysqld.cc: Process the function exit before decrement_handler_count is called, as it can end the per-thread dbug state on Windows.
This commit is contained in:
parent
6b8ec684c7
commit
b8eaa81dd9
@ -5213,9 +5213,9 @@ pthread_handler_t handle_connections_sockets(void *arg __attribute__((unused)))
|
|||||||
|
|
||||||
create_new_thread(thd);
|
create_new_thread(thd);
|
||||||
}
|
}
|
||||||
|
DBUG_LEAVE;
|
||||||
decrement_handler_count();
|
decrement_handler_count();
|
||||||
DBUG_RETURN(0);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5311,8 +5311,9 @@ pthread_handler_t handle_connections_namedpipes(void *arg)
|
|||||||
create_new_thread(thd);
|
create_new_thread(thd);
|
||||||
}
|
}
|
||||||
CloseHandle(connectOverlapped.hEvent);
|
CloseHandle(connectOverlapped.hEvent);
|
||||||
|
DBUG_LEAVE;
|
||||||
decrement_handler_count();
|
decrement_handler_count();
|
||||||
DBUG_RETURN(0);
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* __NT__ */
|
#endif /* __NT__ */
|
||||||
|
|
||||||
@ -5548,9 +5549,9 @@ error:
|
|||||||
if (handle_connect_file_map) CloseHandle(handle_connect_file_map);
|
if (handle_connect_file_map) CloseHandle(handle_connect_file_map);
|
||||||
if (event_connect_answer) CloseHandle(event_connect_answer);
|
if (event_connect_answer) CloseHandle(event_connect_answer);
|
||||||
if (smem_event_connect_request) CloseHandle(smem_event_connect_request);
|
if (smem_event_connect_request) CloseHandle(smem_event_connect_request);
|
||||||
|
DBUG_LEAVE;
|
||||||
decrement_handler_count();
|
decrement_handler_count();
|
||||||
DBUG_RETURN(0);
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* HAVE_SMEM */
|
#endif /* HAVE_SMEM */
|
||||||
#endif /* EMBEDDED_LIBRARY */
|
#endif /* EMBEDDED_LIBRARY */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user