mirror of
https://github.com/MariaDB/server.git
synced 2025-09-03 20:43:11 +03:00
Bug #25167032 CRASH WHEN ASSIGNING MY_ERRNO - MISSING MY_THREAD_INIT IN BACKGROUND THREAD
Description: =========== Add my_thread_init() and my_thread_exit() for background threads which initializes and frees the st_my_thread_var structure. Reviewed-by: Jimmy Yang<jimmy.yang@oracle.com> RB: 15003
This commit is contained in:
committed by
Marko Mäkelä
parent
e180f3c5cf
commit
88a84f49b3
@@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, MariaDB Corporation. All Rights Reserved.
|
||||
Copyright (c) 2011, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
@@ -796,6 +796,7 @@ extern "C"
|
||||
os_thread_ret_t
|
||||
DECLARE_THREAD(buf_dump_thread)(void*)
|
||||
{
|
||||
my_thread_init();
|
||||
ut_ad(!srv_read_only_mode);
|
||||
/* JAN: TODO: MySQL 5.7 PSI
|
||||
#ifdef UNIV_PFS_THREAD
|
||||
@@ -836,6 +837,7 @@ DECLARE_THREAD(buf_dump_thread)(void*)
|
||||
|
||||
srv_buf_dump_thread_active = false;
|
||||
|
||||
my_thread_end();
|
||||
/* We count the number of threads in os_thread_exit(). A created
|
||||
thread should always use that to exit and not use return() to exit. */
|
||||
os_thread_exit();
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1997, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
Copyright (c) 2013, 2017, MariaDB Corporation.
|
||||
|
||||
@@ -532,6 +532,7 @@ DECLARE_THREAD(recv_writer_thread)(
|
||||
/*!< in: a dummy parameter required by
|
||||
os_thread_create */
|
||||
{
|
||||
my_thread_init();
|
||||
ut_ad(!srv_read_only_mode);
|
||||
|
||||
#ifdef UNIV_PFS_THREAD
|
||||
@@ -568,6 +569,7 @@ DECLARE_THREAD(recv_writer_thread)(
|
||||
|
||||
recv_writer_thread_active = false;
|
||||
|
||||
my_thread_end();
|
||||
/* We count the number of threads in os_thread_exit().
|
||||
A created thread should always use that to exit and not
|
||||
use return() to exit. */
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2016, 2017, MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -868,6 +868,8 @@ DECLARE_THREAD(trx_rollback_or_clean_all_recovered)(
|
||||
/*!< in: a dummy parameter required by
|
||||
os_thread_create */
|
||||
{
|
||||
my_thread_init();
|
||||
|
||||
ut_ad(!srv_read_only_mode);
|
||||
|
||||
#ifdef UNIV_PFS_THREAD
|
||||
@@ -878,6 +880,7 @@ DECLARE_THREAD(trx_rollback_or_clean_all_recovered)(
|
||||
|
||||
trx_rollback_or_clean_is_active = false;
|
||||
|
||||
my_thread_end();
|
||||
/* We count the number of threads in os_thread_exit(). A created
|
||||
thread should always use that to exit and not use return() to exit. */
|
||||
|
||||
|
Reference in New Issue
Block a user