diff options
author | Nirbhay Choubey <nirbhay@mariadb.com> | 2015-09-25 13:56:02 -0400 |
---|---|---|
committer | Nirbhay Choubey <nirbhay@mariadb.com> | 2015-09-25 13:56:02 -0400 |
commit | 13615c5e18eed62fa2dee80402dfebe3e74053c4 (patch) | |
tree | 4618417bb4b578e93f7c1b00fcfe28df61dfe20e /mysys | |
parent | d54bc3c0d1ed50b3c5aa3a22b2cb653851315e8a (diff) | |
download | mariadb-git-13615c5e18eed62fa2dee80402dfebe3e74053c4.tar.gz |
MDEV-8208: Sporadic SEGFAULT on startup
Addendum:
* Before calling THD::init_for_queries(), flip the current_thd to wsrep
thread so that memory gets allocated for the right THD.
* Use wsrep_creating_startup_threads instead of plugins_are_initialized
as the condition for the execution of THD::init_for_queries() within
start_wsrep_THD(), as use of latter could still leave some room for
race.
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/my_alloc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c index 1054db6cee4..9e44707b1a2 100644 --- a/mysys/my_alloc.c +++ b/mysys/my_alloc.c @@ -93,6 +93,7 @@ void init_alloc_root(MEM_ROOT *mem_root, size_t block_size, void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, size_t pre_alloc_size __attribute__((unused))) { + DBUG_ENTER("reset_root_defaults"); DBUG_ASSERT(alloc_root_inited(mem_root)); mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE; @@ -114,7 +115,7 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, { /* We found a suitable block, no need to do anything else */ mem_root->pre_alloc= mem; - return; + DBUG_VOID_RETURN; } if (mem->left + ALIGN_SIZE(sizeof(USED_MEM)) == mem->size) { @@ -142,6 +143,8 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, else #endif mem_root->pre_alloc= 0; + + DBUG_VOID_RETURN; } |