srv0start.c, srv0srv.c:

  If UNIV_SYNC_DEBUG was switched on, the error monitor thread could reserve a mutex BEFORE the sync debug system was initialized, and that caused a sync debug assertion in startup: move the 2 sec. sleep to a safer place; note that this is only heuristics, and in theory it can assert still
parent 81f10f9f
...@@ -2739,8 +2739,6 @@ loop: ...@@ -2739,8 +2739,6 @@ loop:
cnt++; cnt++;
os_thread_sleep(2000000);
/* Try to track a strange bug reported by Harald Fuchs and others, /* Try to track a strange bug reported by Harald Fuchs and others,
where the lsn seems to decrease at times */ where the lsn seems to decrease at times */
...@@ -2782,6 +2780,8 @@ loop: ...@@ -2782,6 +2780,8 @@ loop:
fflush(stderr); fflush(stderr);
fflush(stdout); fflush(stdout);
os_thread_sleep(2000000);
if (srv_shutdown_state < SRV_SHUTDOWN_LAST_PHASE) { if (srv_shutdown_state < SRV_SHUTDOWN_LAST_PHASE) {
goto loop; goto loop;
......
...@@ -1512,12 +1512,13 @@ NetWare. */ ...@@ -1512,12 +1512,13 @@ NetWare. */
srv_is_being_started = FALSE; srv_is_being_started = FALSE;
#ifdef UNIV_DEBUG #ifdef UNIV_DEBUG
/* Wait a while so that creates threads have time to suspend themselves /* Wait a while so that the created threads have time to suspend
before we switch sync debugging on; otherwise a thread may execute themselves before we switch sync debugging on; otherwise a thread may
mutex_enter() before the checks are on, and mutex_exit() after the execute mutex_enter() before the checks are on, and mutex_exit() after
checks are on. */ the checks are on, which will cause an assertion failure in sync
debug. */
os_thread_sleep(2000000); os_thread_sleep(3000000);
#endif #endif
sync_order_checks_on = TRUE; sync_order_checks_on = TRUE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment