Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
badf8e71
Commit
badf8e71
authored
Oct 07, 2004
by
marko@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
InnoDB: tolerate system clock glitches a little better
in the error monitor thread. (Bug #5898)
parent
9954abef
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
13 deletions
+26
-13
innobase/include/sync0arr.h
innobase/include/sync0arr.h
+3
-1
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+16
-4
innobase/sync/sync0arr.c
innobase/sync/sync0arr.c
+7
-8
No files found.
innobase/include/sync0arr.h
View file @
badf8e71
...
...
@@ -97,9 +97,11 @@ sync_arr_wake_threads_if_sema_free(void);
/**************************************************************************
Prints warnings of long semaphore waits to stderr. */
void
ibool
sync_array_print_long_waits
(
void
);
/*=============================*/
/* out: TRUE if fatal semaphore wait threshold
was exceeded */
/************************************************************************
Validates the integrity of the wait array. Checks
that the number of reserved cells equals the count variable. */
...
...
innobase/srv/srv0srv.c
View file @
badf8e71
...
...
@@ -1754,7 +1754,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
;
#ifdef UNIV_DEBUG_THREAD_CREATION
fprintf
(
stderr
,
"Error monitor thread starts, id %lu
\n
"
,
...
...
@@ -1763,8 +1764,6 @@ srv_error_monitor_thread(
loop:
srv_error_monitor_active
=
TRUE
;
cnt
++
;
os_thread_sleep
(
2000000
);
if
(
difftime
(
time
(
NULL
),
srv_last_monitor_time
)
>
60
)
{
...
...
@@ -1774,7 +1773,20 @@ srv_error_monitor_thread(
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 */
...
...
innobase/sync/sync0arr.c
View file @
badf8e71
...
...
@@ -889,15 +889,18 @@ sync_arr_wake_threads_if_sema_free(void)
/**************************************************************************
Prints warnings of long semaphore waits to stderr. */
void
ibool
sync_array_print_long_waits
(
void
)
/*=============================*/
/* out: TRUE if fatal semaphore wait threshold
was exceeded */
{
sync_cell_t
*
cell
;
ibool
old_val
;
ibool
noticed
=
FALSE
;
ulint
i
;
ulint
fatal_timeout
=
srv_fatal_semaphore_wait_threshold
;
ibool
fatal
=
FALSE
;
for
(
i
=
0
;
i
<
sync_primary_wait_array
->
n_cells
;
i
++
)
{
...
...
@@ -914,13 +917,7 @@ sync_array_print_long_waits(void)
if
(
cell
->
wait_object
!=
NULL
&&
difftime
(
time
(
NULL
),
cell
->
reservation_time
)
>
fatal_timeout
)
{
fprintf
(
stderr
,
"InnoDB: Error: semaphore wait has lasted > %lu seconds
\n
"
"InnoDB: We intentionally crash the server, because it appears to be hung.
\n
"
,
fatal_timeout
);
ut_error
;
fatal
=
TRUE
;
}
}
...
...
@@ -948,6 +945,8 @@ sync_array_print_long_waits(void)
fprintf
(
stderr
,
"InnoDB: ###### Diagnostic info printed to the standard error stream
\n
"
);
}
return
(
fatal
);
}
/**************************************************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment