Commit 211b2bc9 authored by unknown's avatar unknown
Browse files

Cleanup: manually port the polishing parts from Alik's changeset for

BUG#22306: STOP INSTANCE can not be applied for instances in Crashed,
Failed and Abandoned


mysql-test/t/im_options.imtest:
  Update test for new framework.
server-tools/instance-manager/IMService.cpp:
  Use Manager class instead of manager().
  Reformat comments.
server-tools/instance-manager/Makefile.am:
  Treat warnings as errors.
server-tools/instance-manager/command.cc:
  Store references to Guardian_thread and Instance_map in Command attributes.
server-tools/instance-manager/command.h:
  Store references to Guardian_thread and Instance_map in Command 
  attributes.
server-tools/instance-manager/commands.cc:
  Remove Instance_map argument from command constructors.
server-tools/instance-manager/commands.h:
  Remove Instance_map argument from command constructors.
server-tools/instance-manager/guardian.cc:
  Rename: Guardian_thread -> Guardian
server-tools/instance-manager/guardian.h:
  Rename: Guardian_thread -> Guardian
server-tools/instance-manager/instance_map.cc:
  Rename: Guardian_thread -> Guardian.
server-tools/instance-manager/instance_map.h:
  Rename: Guardian_thread -> Guardian.
server-tools/instance-manager/manager.cc:
  Use Manager class instead of manager() function.
server-tools/instance-manager/manager.h:
  Transfer manager() function into Manager class (singleton).
server-tools/instance-manager/mysql_connection.cc:
  Polishing.
server-tools/instance-manager/mysqlmanager.cc:
  Use Manager class instead of manager() function.
server-tools/instance-manager/parse.cc:
  Rename: Guardian_thread -> Guardian
server-tools/instance-manager/parse.h:
  Rename: Guardian_thread -> Guardian
server-tools/instance-manager/priv.cc:
  Move create_pid_file() out of manager.cc.
server-tools/instance-manager/priv.h:
  Move create_pid_file() out of manager.cc.
server-tools/instance-manager/thread_registry.h:
  Prevent copying.
server-tools/instance-manager/user_map.cc:
  Fix alignment.
parent f224238f
Loading
Loading
Loading
Loading
+1 −27
Original line number Diff line number Diff line
@@ -32,33 +32,7 @@
#
###########################################################################

--source include/im_check_os.inc

###########################################################################
#
# Check starting conditions.
#
###########################################################################

# - check the configuration file;

--echo --------------------------------------------------------------------
--exec grep '^server_id[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf ;
--echo --------------------------------------------------------------------

# - check the running instances.

--connect (mysql1_con,localhost,root,,mysql,$IM_MYSQLD1_PORT,$IM_MYSQLD1_SOCK)

--connection mysql1_con

SHOW VARIABLES LIKE 'server_id';

--connection default

# - check the internal cache.

SHOW INSTANCES;
--source include/im_check_env.inc

###########################################################################
#
+5 −5
Original line number Diff line number Diff line
@@ -21,22 +21,22 @@ void IMService::Stop()
{
  ReportStatus(SERVICE_STOP_PENDING);

  // stop the IM work
  /* stop the IM work */
  raise(SIGTERM);
}

void IMService::Run(DWORD argc, LPTSTR *argv)
{
  // report to the SCM that we're about to start
  /* report to the SCM that we're about to start */
  ReportStatus((DWORD)SERVICE_START_PENDING);

  Options::load(argc, argv);

  // init goes here
  /* init goes here */
  ReportStatus((DWORD)SERVICE_RUNNING);

  // wait for main loop to terminate
  manager();
  /* wait for main loop to terminate */
  (void) Manager::main();
  Options::cleanup();
}

+2 −0
Original line number Diff line number Diff line
@@ -61,6 +61,8 @@ client_settings.h:

libexec_PROGRAMS= mysqlmanager

mysqlmanager_CXXFLAGS=  -Werror

mysqlmanager_SOURCES=	command.cc command.h mysqlmanager.cc \
			manager.h manager.cc log.h log.cc \
			thread_registry.h thread_registry.cc \
+4 −2
Original line number Diff line number Diff line
@@ -19,10 +19,12 @@
#endif

#include "command.h"
#include "manager.h"


Command::Command(Instance_map *instance_map_arg)
  :instance_map(instance_map_arg)
Command::Command()
  :guardian(Manager::get_guardian()),
  instance_map(Manager::get_instance_map())
{}

Command::~Command()
+3 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@

/* Class responsible for allocation of IM commands. */

class Guardian;
class Instance_map;

struct st_net;
@@ -36,7 +37,7 @@ struct st_net;
class Command
{
public:
  Command(Instance_map *instance_map_arg= 0);
  Command();
  virtual ~Command();

  /*
@@ -53,6 +54,7 @@ class Command
  virtual int execute(st_net *net, ulong connection_id) = 0;

protected:
  Guardian *guardian;
  Instance_map *instance_map;
};

Loading