summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorNirbhay Choubey <nirbhay@mariadb.com>2015-09-25 13:56:02 -0400
committerNirbhay Choubey <nirbhay@mariadb.com>2015-09-25 13:56:02 -0400
commit13615c5e18eed62fa2dee80402dfebe3e74053c4 (patch)
tree4618417bb4b578e93f7c1b00fcfe28df61dfe20e /mysys
parentd54bc3c0d1ed50b3c5aa3a22b2cb653851315e8a (diff)
downloadmariadb-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.c5
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;
}