summaryrefslogtreecommitdiff
path: root/innobase/srv
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-10-08 15:43:27 +0300
committerunknown <monty@mysql.com>2004-10-08 15:43:27 +0300
commitb5f445a0e9f35809d49faee64b69f45c12e8d877 (patch)
tree26d8a4d43267899111e3c944feb5b5c4064aaf54 /innobase/srv
parent57fedc40708ed3266d79347cd71e829297352409 (diff)
parent66bdcf8439c3397856d028b13a6f0bb09769434d (diff)
downloadmariadb-git-b5f445a0e9f35809d49faee64b69f45c12e8d877.tar.gz
Merge
BitKeeper/etc/logging_ok: auto-union innobase/include/sync0arr.h: Auto merged innobase/sync/sync0arr.c: Auto merged scripts/mysqlhotcopy.sh: Auto merged innobase/srv/srv0srv.c: SCCS merged
Diffstat (limited to 'innobase/srv')
-rw-r--r--innobase/srv/srv0srv.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
index adffe06ef0a..94930b24e78 100644
--- a/innobase/srv/srv0srv.c
+++ b/innobase/srv/srv0srv.c
@@ -1810,7 +1810,8 @@ srv_error_monitor_thread(
/* in: a dummy parameter required by
os_thread_create */
{
- ulint cnt = 0;
+ /* number of successive fatal timeouts observed */
+ ulint fatal_cnt = 0;
dulint old_lsn;
dulint new_lsn;
@@ -1823,8 +1824,6 @@ srv_error_monitor_thread(
loop:
srv_error_monitor_active = TRUE;
- cnt++;
-
/* Try to track a strange bug reported by Harald Fuchs and others,
where the lsn seems to decrease at times */
@@ -1851,7 +1850,20 @@ loop:
srv_refresh_innodb_monitor_stats();
}
- sync_array_print_long_waits();
+ if (sync_array_print_long_waits()) {
+ fatal_cnt++;
+ if (fatal_cnt > 5) {
+
+ fprintf(stderr,
+"InnoDB: Error: semaphore wait has lasted > %lu seconds\n"
+"InnoDB: We intentionally crash the server, because it appears to be hung.\n",
+ srv_fatal_semaphore_wait_threshold);
+
+ ut_error;
+ }
+ } else {
+ fatal_cnt = 0;
+ }
/* Flush stderr so that a database user gets the output
to possible MySQL error file */