diff options
author | Jan Lindström <jplindst@mariadb.org> | 2013-11-14 12:57:28 +0200 |
---|---|---|
committer | Jan Lindström <jplindst@mariadb.org> | 2013-11-14 12:57:28 +0200 |
commit | 5d1ec1b95147ead6e1f8a6690b7deee690257abf (patch) | |
tree | 34acfec3218f20f7f4906ad80f5b0df7071c1fea /storage/xtradb/include/os0stacktrace.h | |
parent | 4f0dabcfba1c1c539c836266cd7a19f32eee0ad0 (diff) | |
download | mariadb-git-5d1ec1b95147ead6e1f8a6690b7deee690257abf.tar.gz |
MDEV-5247: DB locked up at btr0cur.c line 568. There is inconsistent and non logical usage of have_LRU_mutex and incorrect value on ha_innodb.cc when buf_LRU_free_block is called. Additionally, for future long semaphore wait cases added a new configuration variable innodb_use_stacktrace. If this variable is true a signal handler for SIGUSR2 is installed when InnoDB server starts and when a long semaphore wait is detected at sync/sync0array.c we send SIGUSR2 signal to waiting thread and thread that has acuired RW-latch. For both threads a full stacktrace is produced as well as its is possible.
Diffstat (limited to 'storage/xtradb/include/os0stacktrace.h')
-rw-r--r-- | storage/xtradb/include/os0stacktrace.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/storage/xtradb/include/os0stacktrace.h b/storage/xtradb/include/os0stacktrace.h new file mode 100644 index 00000000000..15921a11be0 --- /dev/null +++ b/storage/xtradb/include/os0stacktrace.h @@ -0,0 +1,42 @@ +/***************************************************************************** + +Copyright (C) 2013 SkySQL Ab. All Rights Reserved. + + +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 +Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*****************************************************************************/ + +#ifndef os0stacktrace_h +#define os0stacktrace_h + +#ifndef __WIN__ +#include <execinfo.h> +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +/***************************************************************//** +Prints stacktrace for this thread. +*/ +void +os_stacktrace_print( +/*================*/ + int sig_num, /*!< in: signal number */ + siginfo_t* info, /*!< in: signal information */ + void* ucontext);/*!< in: signal context */ + +#endif /* ! __WIN__ */ +#endif /* os0stacktrace.h */ |