Commit 8a5ca696 authored by unknown's avatar unknown

Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0

into  mysql.com:/usr/home/ram/work/mysql-5.0

parents cce062f4 24240329
...@@ -148,3 +148,5 @@ drop function bug15728_insert; ...@@ -148,3 +148,5 @@ drop function bug15728_insert;
drop table t1, t2; drop table t1, t2;
# End of 5.0 tests # End of 5.0 tests
sync_slave_with_master;
...@@ -138,11 +138,14 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -138,11 +138,14 @@ void Guardian_thread::process_instance(Instance *instance,
break; break;
case JUST_CRASHED: case JUST_CRASHED:
if (current_time - current_node->crash_moment <= 2) if (current_time - current_node->crash_moment <= 2)
{
if (instance->is_crashed())
{ {
instance->start(); instance->start();
log_info("guardian: starting instance %s", log_info("guardian: starting instance %s",
instance->options.instance_name); instance->options.instance_name);
} }
}
else else
current_node->state= CRASHED; current_node->state= CRASHED;
break; break;
...@@ -151,6 +154,8 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -151,6 +154,8 @@ void Guardian_thread::process_instance(Instance *instance,
monitoring_interval) monitoring_interval)
{ {
if ((current_node->restart_counter < restart_retry)) if ((current_node->restart_counter < restart_retry))
{
if (instance->is_crashed())
{ {
instance->start(); instance->start();
current_node->last_checked= current_time; current_node->last_checked= current_time;
...@@ -158,6 +163,7 @@ void Guardian_thread::process_instance(Instance *instance, ...@@ -158,6 +163,7 @@ void Guardian_thread::process_instance(Instance *instance,
log_info("guardian: restarting instance %s", log_info("guardian: restarting instance %s",
instance->options.instance_name); instance->options.instance_name);
} }
}
else else
current_node->state= CRASHED_AND_ABANDONED; current_node->state= CRASHED_AND_ABANDONED;
} }
......
...@@ -147,28 +147,6 @@ void manager(const Options &options) ...@@ -147,28 +147,6 @@ void manager(const Options &options)
if (create_pid_file(options.pid_file_name, manager_pid)) if (create_pid_file(options.pid_file_name, manager_pid))
return; return;
sigset_t mask;
set_signals(&mask);
/* create the listener */
{
pthread_t listener_thd_id;
pthread_attr_t listener_thd_attr;
int rc;
pthread_attr_init(&listener_thd_attr);
pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
listener, &listener_args);
pthread_attr_destroy(&listener_thd_attr);
if (rc)
{
log_error("manager(): set_stacksize_n_create_thread(listener) failed");
goto err;
}
}
/* create guardian thread */ /* create guardian thread */
{ {
pthread_t guardian_thd_id; pthread_t guardian_thd_id;
...@@ -211,6 +189,30 @@ void manager(const Options &options) ...@@ -211,6 +189,30 @@ void manager(const Options &options)
return; return;
} }
/* Initialize signals and alarm-infrastructure. */
sigset_t mask;
set_signals(&mask);
/* create the listener */
{
pthread_t listener_thd_id;
pthread_attr_t listener_thd_attr;
int rc;
pthread_attr_init(&listener_thd_attr);
pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
listener, &listener_args);
pthread_attr_destroy(&listener_thd_attr);
if (rc)
{
log_error("manager(): set_stacksize_n_create_thread(listener) failed");
goto err;
}
}
/* /*
After the list of guarded instances have been initialized, After the list of guarded instances have been initialized,
Guardian should start them. Guardian should start them.
......
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