mariadb/server-tools/instance-manager/instance.cc

662 lines
18 KiB
C++
Raw Normal View History

Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
/* Copyright (C) 2004 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
Some minor fixes revealed as warnings by Intel compiler. client/mysqltest.c: Fixed a warning from using reference to a memory area, which is outside an object. This is just a minor clean-up, not a bug fix. server-tools/instance-manager/buffer.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/buffer.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/command.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/command.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/guardian.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/guardian.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/instance.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/instance.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/instance_map.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/instance_map.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/instance_options.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/instance_options.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/listener.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/listener.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/mysql_connection.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/mysql_connection.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/options.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/options.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/parse_output.cc: Removed unused goto. server-tools/instance-manager/thread_registry.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/thread_registry.h: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/user_map.cc: Fixed pragma warning for those compilers that do not support it. server-tools/instance-manager/user_map.h: Fixed pragma warning for those compilers that do not support it. sql/field.cc: Fixed a warning about overflow. sql/item.h: Fixed implicit function declaration warning. sql/item_sum.cc: Fixed implicit function declaration warning.
2005-09-23 21:28:56 +03:00
#if defined(__GNUC__) && defined(USE_PRAGMA_IMPLEMENTATION)
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
#pragma implementation
#endif
#include "instance.h"
Fix for AIX compilation failure: sacred knowledge of my_global.h nature (it should be included before any other include) was hidden from me. server-tools/instance-manager/commands.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/commands.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/factory.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/guardian.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/guardian.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance_map.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance_map.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance_options.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/log.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/manager.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/messages.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/messages.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/mysql_connection.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/mysqlmanager.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/options.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/parse.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/parse_output.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/protocol.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/protocol.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/thread_registry.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/user_map.h: Fix for AIX compilation failure & cleanup
2005-03-22 02:04:14 +03:00
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
#include <my_global.h>
#include <mysql.h>
#include <signal.h>
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
#ifndef __WIN__
Fix for AIX compilation failure: sacred knowledge of my_global.h nature (it should be included before any other include) was hidden from me. server-tools/instance-manager/commands.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/commands.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/factory.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/guardian.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/guardian.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance_map.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance_map.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/instance_options.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/log.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/manager.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/messages.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/messages.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/mysql_connection.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/mysqlmanager.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/options.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/parse.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/parse_output.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/protocol.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/protocol.h: Fix for AIX compilation failure & cleanup server-tools/instance-manager/thread_registry.cc: Fix for AIX compilation failure & cleanup server-tools/instance-manager/user_map.h: Fix for AIX compilation failure & cleanup
2005-03-22 02:04:14 +03:00
#include <sys/wait.h>
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
#endif
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
#include "guardian.h"
#include "instance_map.h"
#include "log.h"
#include "mysql_manager_error.h"
#include "portability.h"
#include "priv.h"
const LEX_STRING
Instance::DFLT_INSTANCE_NAME= { C_STRING_WITH_LEN("mysqld") };
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
static const char * const INSTANCE_NAME_PREFIX= Instance::DFLT_INSTANCE_NAME.str;
static const int INSTANCE_NAME_PREFIX_LEN= Instance::DFLT_INSTANCE_NAME.length;
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
static void start_and_monitor_instance(Instance_options *old_instance_options,
Instance_map *instance_map);
#ifndef __WIN__
typedef pid_t My_process_info;
#else
typedef PROCESS_INFORMATION My_process_info;
#endif
/*
Proxy thread is a simple way to avoid all pitfalls of the threads
implementation in the OS (e.g. LinuxThreads). With such a thread we
don't have to process SIGCHLD, which is a tricky business if we want
to do it in a portable way.
*/
pthread_handler_t proxy(void *arg)
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
{
Instance *instance= (Instance *) arg;
start_and_monitor_instance(&instance->options,
instance->get_map());
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
return 0;
}
/*
Wait for an instance
SYNOPSYS
wait_process()
pi Pointer to the process information structure
(platform-dependent).
RETURN
0 - Success
1 - Error
*/
#ifndef __WIN__
static int wait_process(My_process_info *pi)
{
/*
Here we wait for the child created. This process differs for systems
running LinuxThreads and POSIX Threads compliant systems. This is because
according to POSIX we could wait() for a child in any thread of the
process. While LinuxThreads require that wait() is called by the thread,
which created the child.
On the other hand we could not expect mysqld to return the pid, we
got in from fork(), to wait4() fucntion when running on LinuxThreads.
This is because MySQL shutdown thread is not the one, which was created
by our fork() call.
So basically we have two options: whether the wait() call returns only in
the creator thread, but we cannot use waitpid() since we have no idea
which pid we should wait for (in fact it should be the pid of shutdown
thread, but we don't know this one). Or we could use waitpid(), but
couldn't use wait(), because it could return in any wait() in the program.
*/
if (linuxthreads)
wait(NULL); /* LinuxThreads were detected */
else
waitpid(*pi, NULL, 0);
return 0;
}
#else
static int wait_process(My_process_info *pi)
{
/* Wait until child process exits. */
WaitForSingleObject(pi->hProcess, INFINITE);
DWORD exitcode;
::GetExitCodeProcess(pi->hProcess, &exitcode);
/* Close process and thread handles. */
CloseHandle(pi->hProcess);
CloseHandle(pi->hThread);
/*
GetExitCodeProces returns zero on failure. We should revert this value
to report an error.
*/
return (!exitcode);
}
#endif
/*
Launch an instance
SYNOPSYS
start_process()
instance_options Pointer to the options of the instance to be
launched.
pi Pointer to the process information structure
(platform-dependent).
RETURN
0 - Success
1 - Cannot create an instance
*/
#ifndef __WIN__
static int start_process(Instance_options *instance_options,
My_process_info *pi)
{
#ifndef __QNX__
*pi= fork();
#else
/*
On QNX one cannot use fork() in multithreaded environment and we
should use spawn() or one of it's siblings instead.
Here we use spawnv(), which is a combination of fork() and execv()
in one call. It returns the pid of newly created process (>0) or -1
*/
*pi= spawnv(P_NOWAIT, instance_options->mysqld_path, instance_options->argv);
#endif
switch (*pi) {
case 0: /* never happens on QNX */
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
execv(instance_options->mysqld_path.str, instance_options->argv);
/* exec never returns */
exit(1);
case -1:
log_info("cannot create a new process to start instance %s",
Fixed a lot of compiler warnings (Mainly in mysqld and instance manager) Fixed some possible fatal wrong arguments to printf() style functions Initialized some not initialized variables Fixed bug in stored procedure and continue handlers (Fixes Bug#22150) include/mysql/plugin.h: Remove compiler warning mysql-test/mysql-test-run.pl: Ensure that --extern works on a clean tree (when 'var' directory doesn't exists) server-tools/instance-manager/commands.cc: Fixed possible use of unitialized variable server-tools/instance-manager/guardian.cc: Fixed wrong arguments to log_info() that could cause crashes server-tools/instance-manager/instance.cc: Fixed wrong arguments to log_info() and log_error() that could cause crashes server-tools/instance-manager/instance_options.cc: Fixed wrong arguments to log_error() that could cause crashes server-tools/instance-manager/mysql_connection.cc: Fixed wrong arguments to log_info() server-tools/instance-manager/parse.cc: Fixed possible use of unitialized variable server-tools/instance-manager/user_map.cc: Fixed wrong arguments to log_error() that could cause crashes sql/Makefile.am: Fix for bison 1.875 (It write an __attribute__() tag that was causing compiler failures) sql/ha_ndbcluster.cc: Fixed wrong snprintf() arguments Remoed not used variables sql/ha_ndbcluster_binlog.cc: Fixed compiler warning (unsigned/signed comparision) sql/handler.cc: Fixed wrong parameter to hton->binlog_func() sql/item_cmpfunc.cc: Removed compiler warnings sql/item_timefunc.cc: Removed compiler warnings sql/log.cc: fixed wrong argument to snprintf() sql/mysqld.cc: Removed compiler warnings Fixed wrong arguments to printf() sql/partition_info.cc: Removed compiler warnings sql/protocol.cc: reset is_fatal_error for stored procedures (Fix for Bug#22150) sql/sp_head.cc: More DBUG information Reset is_fatal_error in case of continue handler. (Fix for Bug#22150) sql/sql_base.cc: Removed compiler warnings sql/sql_class.h: More DBUG information sql/sql_insert.cc: Removed compiler warnings Initialize not initialized variable (fatal bug) sql/sql_parse.cc: Added DBUG_ASSERT to detect if stored procedure code returns with a wrong state Removed compiler warning sql/sql_plugin.cc: Fied wrong aruguments to printf() (Fatal bug) sql/sql_select.cc: Initailize not initialized variable. Remove compiler warnings Fixed wrong argument to printf() (Possible fatal error) sql/sql_view.cc: Removed compiler warnings sql/table.cc: Fixed wrong argument to printf() (Possible fatal)
2006-11-01 19:41:09 +02:00
instance_options->instance_name.str);
return 1;
}
return 0;
}
#else
static int start_process(Instance_options *instance_options,
My_process_info *pi)
{
STARTUPINFO si;
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb= sizeof(STARTUPINFO);
ZeroMemory(pi, sizeof(PROCESS_INFORMATION));
int cmdlen= 0;
for (int i= 0; instance_options->argv[i] != 0; i++)
cmdlen+= strlen(instance_options->argv[i]) + 3;
cmdlen++; /* make room for the null */
char *cmdline= new char[cmdlen];
if (cmdline == NULL)
return 1;
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
cmdline[0]= 0;
for (int i= 0; instance_options->argv[i] != 0; i++)
{
strcat(cmdline, "\"");
strcat(cmdline, instance_options->argv[i]);
strcat(cmdline, "\" ");
}
/* Start the child process */
BOOL result=
CreateProcess(NULL, /* Put it all in cmdline */
cmdline, /* Command line */
NULL, /* Process handle not inheritable */
NULL, /* Thread handle not inheritable */
FALSE, /* Set handle inheritance to FALSE */
0, /* No creation flags */
NULL, /* Use parent's environment block */
NULL, /* Use parent's starting directory */
&si, /* Pointer to STARTUPINFO structure */
pi); /* Pointer to PROCESS_INFORMATION structure */
delete cmdline;
return (!result);
}
#endif
/*
Fork child, exec an instance and monitor it.
SYNOPSYS
start_and_monitor_instance()
old_instance_options Pointer to the options of the instance to be
launched. This info is likely to become obsolete
when function returns from wait_process()
instance_map Pointer to the instance_map. We use it to protect
the instance from deletion, while we are working
with it.
DESCRIPTION
Fork a child, then exec and monitor it. When the child is dead,
find appropriate instance (for this purpose we save its name),
set appropriate flags and wake all threads waiting for instance
to stop.
RETURN
Function returns no value
*/
static void start_and_monitor_instance(Instance_options *old_instance_options,
Instance_map *instance_map)
{
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
Instance_name instance_name(&old_instance_options->instance_name);
Instance *current_instance;
My_process_info process_info;
/*
Lock instance map to guarantee that no instances are deleted during
strmake() and execv() calls.
*/
instance_map->lock();
/*
Save the instance name in the case if Instance object we
are using is destroyed. (E.g. by "FLUSH INSTANCES")
*/
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
log_info("starting instance %s", (const char *) instance_name.get_c_str());
if (start_process(old_instance_options, &process_info))
{
instance_map->unlock();
return; /* error is logged */
}
/* allow users to delete instances */
instance_map->unlock();
/* don't check for return value */
wait_process(&process_info);
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
instance_map->lock();
current_instance= instance_map->find(instance_name.get_str());
if (current_instance)
current_instance->set_crash_flag_n_wake_all();
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
instance_map->unlock();
return;
}
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
bool Instance::is_name_valid(const LEX_STRING *name)
{
const char *name_suffix= name->str + INSTANCE_NAME_PREFIX_LEN;
if (strncmp(name->str, INSTANCE_NAME_PREFIX, INSTANCE_NAME_PREFIX_LEN) != 0)
return FALSE;
return *name_suffix == 0 || my_isdigit(default_charset_info, *name_suffix);
}
bool Instance::is_mysqld_compatible_name(const LEX_STRING *name)
{
return strcmp(name->str, INSTANCE_NAME_PREFIX) == 0;
}
Instance_map *Instance::get_map()
{
return instance_map;
}
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
void Instance::remove_pid()
{
int pid;
if ((pid= options.get_pid()) != 0) /* check the pidfile */
if (options.unlink_pidfile()) /* remove stalled pidfile */
Fixed a lot of compiler warnings (Mainly in mysqld and instance manager) Fixed some possible fatal wrong arguments to printf() style functions Initialized some not initialized variables Fixed bug in stored procedure and continue handlers (Fixes Bug#22150) include/mysql/plugin.h: Remove compiler warning mysql-test/mysql-test-run.pl: Ensure that --extern works on a clean tree (when 'var' directory doesn't exists) server-tools/instance-manager/commands.cc: Fixed possible use of unitialized variable server-tools/instance-manager/guardian.cc: Fixed wrong arguments to log_info() that could cause crashes server-tools/instance-manager/instance.cc: Fixed wrong arguments to log_info() and log_error() that could cause crashes server-tools/instance-manager/instance_options.cc: Fixed wrong arguments to log_error() that could cause crashes server-tools/instance-manager/mysql_connection.cc: Fixed wrong arguments to log_info() server-tools/instance-manager/parse.cc: Fixed possible use of unitialized variable server-tools/instance-manager/user_map.cc: Fixed wrong arguments to log_error() that could cause crashes sql/Makefile.am: Fix for bison 1.875 (It write an __attribute__() tag that was causing compiler failures) sql/ha_ndbcluster.cc: Fixed wrong snprintf() arguments Remoed not used variables sql/ha_ndbcluster_binlog.cc: Fixed compiler warning (unsigned/signed comparision) sql/handler.cc: Fixed wrong parameter to hton->binlog_func() sql/item_cmpfunc.cc: Removed compiler warnings sql/item_timefunc.cc: Removed compiler warnings sql/log.cc: fixed wrong argument to snprintf() sql/mysqld.cc: Removed compiler warnings Fixed wrong arguments to printf() sql/partition_info.cc: Removed compiler warnings sql/protocol.cc: reset is_fatal_error for stored procedures (Fix for Bug#22150) sql/sp_head.cc: More DBUG information Reset is_fatal_error in case of continue handler. (Fix for Bug#22150) sql/sql_base.cc: Removed compiler warnings sql/sql_class.h: More DBUG information sql/sql_insert.cc: Removed compiler warnings Initialize not initialized variable (fatal bug) sql/sql_parse.cc: Added DBUG_ASSERT to detect if stored procedure code returns with a wrong state Removed compiler warning sql/sql_plugin.cc: Fied wrong aruguments to printf() (Fatal bug) sql/sql_select.cc: Initailize not initialized variable. Remove compiler warnings Fixed wrong argument to printf() (Possible fatal error) sql/sql_view.cc: Removed compiler warnings sql/table.cc: Fixed wrong argument to printf() (Possible fatal)
2006-11-01 19:41:09 +02:00
log_error("cannot remove pidfile for instance %s, this might be "
"since IM lacks permmissions or hasn't found the pidfile",
options.instance_name.str);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
}
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
/*
The method starts an instance.
SYNOPSYS
start()
RETURN
0 ok
ER_CANNOT_START_INSTANCE Cannot start instance
ER_INSTANCE_ALREADY_STARTED The instance on the specified port/socket
is already started
*/
int Instance::start()
{
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
/* clear crash flag */
pthread_mutex_lock(&LOCK_instance);
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
crashed= FALSE;
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
pthread_mutex_unlock(&LOCK_instance);
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
if (configured && !is_running())
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
{
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
remove_pid();
more fixes for IM to substitude mysqld_safe in startup scripts BitKeeper/deleted/.del-thread_repository.cc~bba09f64f8cb4037: Delete: server-tools/instance-manager/thread_repository.cc BitKeeper/deleted/.del-thread_repository.h~e6a3b9cab7a6612a: Delete: server-tools/instance-manager/thread_repository.h server-tools/instance-manager/commands.cc: All instances are guarded by default now, so we need to perform check on whether the instance is nonguarded, rather then guarded when adding it to the list of guarded instnces. server-tools/instance-manager/guardian.cc: Guardian rewritten to start instances by default, and shut them down, when exiting. Behaviour of the guardian in case of the instance crash has changed. Now it tries to restart an instance constantly in the first 2 seconds after the crash was noticed, and then it tries restart an instance once in the MONITORING_INTERVAL. If it failed to restart instance for "restart_retry" (compiled-in value) times, guardian stops trying to restart it. server-tools/instance-manager/guardian.h: Several new functions and variables declared. server-tools/instance-manager/instance.cc: now start doesn't call stop(), but rather tries to remove the pidfile itself server-tools/instance-manager/instance.h: cleanup server-tools/instance-manager/instance_map.cc: no more "admin" options server-tools/instance-manager/instance_map.h: User and password purged from instance_map options, as IM shouldn't know them server-tools/instance-manager/instance_options.cc: new option added -- shutdown_delay, guarded option now called nonguaded and has the opposite meaning server-tools/instance-manager/instance_options.h: appropriate changes, reflecting options addition/removal server-tools/instance-manager/manager.cc: shutdown process is complicated a bit -- at first signal thread should stop guardian, and only then the IM itself server-tools/instance-manager/messages.cc: update error message server-tools/instance-manager/options.cc: admin user/password purged from mysqlmanager options
2005-01-31 23:54:08 +03:00
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
/*
No need to monitor this thread in the Thread_registry, as all
instances are to be stopped during shutdown.
*/
pthread_t proxy_thd_id;
pthread_attr_t proxy_thd_attr;
int rc;
pthread_attr_init(&proxy_thd_attr);
pthread_attr_setdetachstate(&proxy_thd_attr, PTHREAD_CREATE_DETACHED);
rc= pthread_create(&proxy_thd_id, &proxy_thd_attr, proxy,
this);
pthread_attr_destroy(&proxy_thd_attr);
if (rc)
{
log_error("Instance::start(): pthread_create(proxy) failed");
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
return ER_CANNOT_START_INSTANCE;
}
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
return 0;
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
}
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
/* The instance is started already or misconfigured. */
return configured ? ER_INSTANCE_ALREADY_STARTED : ER_INSTANCE_MISCONFIGURED;
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
}
/*
The method sets the crash flag and wakes all waiters on
COND_instance_stopped and COND_guardian
SYNOPSYS
set_crash_flag_n_wake_all()
DESCRIPTION
The method is called when an instance is crashed or terminated.
In the former case it might indicate that guardian probably should
restart it.
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
RETURN
Function returns no value
*/
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
void Instance::set_crash_flag_n_wake_all()
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
{
/* set instance state to crashed */
pthread_mutex_lock(&LOCK_instance);
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
crashed= TRUE;
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
pthread_mutex_unlock(&LOCK_instance);
/*
Wake connection threads waiting for an instance to stop. This
is needed if a user issued command to stop an instance via
mysql connection. This is not the case if Guardian stop the thread.
*/
pthread_cond_signal(&COND_instance_stopped);
/* wake guardian */
pthread_cond_signal(&instance_map->guardian->COND_guardian);
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
}
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
Instance::Instance(): crashed(FALSE), configured(FALSE)
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
{
pthread_mutex_init(&LOCK_instance, 0);
pthread_cond_init(&COND_instance_stopped, 0);
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
}
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
Instance::~Instance()
{
pthread_cond_destroy(&COND_instance_stopped);
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
pthread_mutex_destroy(&LOCK_instance);
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
}
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
bool Instance::is_crashed()
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
{
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
bool val;
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
pthread_mutex_lock(&LOCK_instance);
val= crashed;
pthread_mutex_unlock(&LOCK_instance);
return val;
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
}
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
bool Instance::is_running()
{
MYSQL mysql;
uint port= 0;
const char *socket= NULL;
static const char *password= "check_connection";
static const char *username= "MySQL_Instance_Manager";
static const char *access_denied_message= "Access denied for user";
bool return_val;
if (options.mysqld_port)
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
{
/*
NOTE: it is important to check mysqld_port here, but use
mysqld_port_val. The idea is that if the option is unset, mysqld_port
will be NULL, but mysqld_port_val will not be reset.
*/
port= options.mysqld_port_val;
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
}
if (options.mysqld_socket)
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
socket= options.mysqld_socket;
/* no port was specified => instance falled back to default value */
if (!options.mysqld_port && !options.mysqld_socket)
port= SERVER_DEFAULT_PORT;
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
pthread_mutex_lock(&LOCK_instance);
mysql_init(&mysql);
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
/* try to connect to a server with a fake username/password pair */
if (mysql_real_connect(&mysql, LOCAL_HOST, username,
password,
NullS, port,
socket, 0))
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
{
/*
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
We have successfully connected to the server using fake
username/password. Write a warning to the logfile.
*/
log_info("The Instance Manager was able to log into you server \
with faked compiled-in password while checking server status. \
Looks like something is wrong.");
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
pthread_mutex_unlock(&LOCK_instance);
return_val= TRUE; /* server is alive */
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
}
else
return_val= test(!strncmp(access_denied_message, mysql_error(&mysql),
sizeof(access_denied_message) - 1));
mysql_close(&mysql);
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
pthread_mutex_unlock(&LOCK_instance);
return return_val;
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
}
/*
Stop an instance.
SYNOPSYS
stop()
RETURN:
0 ok
ER_INSTANCE_IS_NOT_STARTED Looks like the instance it is not started
ER_STOP_INSTANCE mysql_shutdown reported an error
*/
int Instance::stop()
{
struct timespec timeout;
uint waitchild= (uint) DEFAULT_SHUTDOWN_DELAY;
more fixes for IM to substitude mysqld_safe in startup scripts BitKeeper/deleted/.del-thread_repository.cc~bba09f64f8cb4037: Delete: server-tools/instance-manager/thread_repository.cc BitKeeper/deleted/.del-thread_repository.h~e6a3b9cab7a6612a: Delete: server-tools/instance-manager/thread_repository.h server-tools/instance-manager/commands.cc: All instances are guarded by default now, so we need to perform check on whether the instance is nonguarded, rather then guarded when adding it to the list of guarded instnces. server-tools/instance-manager/guardian.cc: Guardian rewritten to start instances by default, and shut them down, when exiting. Behaviour of the guardian in case of the instance crash has changed. Now it tries to restart an instance constantly in the first 2 seconds after the crash was noticed, and then it tries restart an instance once in the MONITORING_INTERVAL. If it failed to restart instance for "restart_retry" (compiled-in value) times, guardian stops trying to restart it. server-tools/instance-manager/guardian.h: Several new functions and variables declared. server-tools/instance-manager/instance.cc: now start doesn't call stop(), but rather tries to remove the pidfile itself server-tools/instance-manager/instance.h: cleanup server-tools/instance-manager/instance_map.cc: no more "admin" options server-tools/instance-manager/instance_map.h: User and password purged from instance_map options, as IM shouldn't know them server-tools/instance-manager/instance_options.cc: new option added -- shutdown_delay, guarded option now called nonguaded and has the opposite meaning server-tools/instance-manager/instance_options.h: appropriate changes, reflecting options addition/removal server-tools/instance-manager/manager.cc: shutdown process is complicated a bit -- at first signal thread should stop guardian, and only then the IM itself server-tools/instance-manager/messages.cc: update error message server-tools/instance-manager/options.cc: admin user/password purged from mysqlmanager options
2005-01-31 23:54:08 +03:00
if (is_running())
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
{
if (options.shutdown_delay)
{
/*
NOTE: it is important to check shutdown_delay here, but use
shutdown_delay_val. The idea is that if the option is unset,
shutdown_delay will be NULL, but shutdown_delay_val will not be reset.
*/
waitchild= options.shutdown_delay_val;
}
kill_instance(SIGTERM);
/* sleep on condition to wait for SIGCHLD */
timeout.tv_sec= time(NULL) + waitchild;
timeout.tv_nsec= 0;
if (pthread_mutex_lock(&LOCK_instance))
return ER_STOP_INSTANCE;
while (options.get_pid() != 0) /* while server isn't stopped */
{
int status;
status= pthread_cond_timedwait(&COND_instance_stopped,
&LOCK_instance,
&timeout);
if (status == ETIMEDOUT || status == ETIME)
break;
}
pthread_mutex_unlock(&LOCK_instance);
kill_instance(SIGKILL);
return 0;
}
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
return ER_INSTANCE_IS_NOT_STARTED;
}
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
#ifdef __WIN__
BOOL SafeTerminateProcess(HANDLE hProcess, UINT uExitCode)
{
DWORD dwTID, dwCode, dwErr= 0;
HANDLE hProcessDup= INVALID_HANDLE_VALUE;
HANDLE hRT= NULL;
HINSTANCE hKernel= GetModuleHandle("Kernel32");
BOOL bSuccess= FALSE;
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
BOOL bDup= DuplicateHandle(GetCurrentProcess(),
hProcess, GetCurrentProcess(), &hProcessDup,
PROCESS_ALL_ACCESS, FALSE, 0);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
// Detect the special case where the process is
// already dead...
if (GetExitCodeProcess((bDup) ? hProcessDup : hProcess, &dwCode) &&
(dwCode == STILL_ACTIVE))
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
{
FARPROC pfnExitProc;
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
pfnExitProc= GetProcAddress(hKernel, "ExitProcess");
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
hRT= CreateRemoteThread((bDup) ? hProcessDup : hProcess, NULL, 0,
(LPTHREAD_START_ROUTINE)pfnExitProc,
(PVOID)uExitCode, 0, &dwTID);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
if (hRT == NULL)
dwErr= GetLastError();
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
}
else
dwErr= ERROR_PROCESS_ABORTED;
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
if (hRT)
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
{
// Must wait process to terminate to
// guarantee that it has exited...
WaitForSingleObject((bDup) ? hProcessDup : hProcess, INFINITE);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
CloseHandle(hRT);
bSuccess= TRUE;
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
}
if (bDup)
CloseHandle(hProcessDup);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
if (!bSuccess)
SetLastError(dwErr);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
return bSuccess;
}
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
int kill(pid_t pid, int signum)
{
HANDLE processhandle= ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
initial import of Windows port of IM. server-tools/instance-manager/commands.cc: type cleanups for compiling on Windows now using Options::config_file for the location of the single my.cnf file we are using server-tools/instance-manager/guardian.cc: pthread_mutex_lock and unlock do not return a value on Windows so we return 0 in all cases server-tools/instance-manager/instance.cc: big changes here. Had to implement Windows versions of launch_and_wait and kill() server-tools/instance-manager/instance.h: added some function defs server-tools/instance-manager/instance_map.cc: pthread_mutex_lock and unlock do not return a value on Windows Also, now using only the file named as Options::config_file server-tools/instance-manager/instance_options.h: added reference to port.h server-tools/instance-manager/listener.cc: reworked and simplified the socket handling code. Added windows versions of the code that sets the sockets to be non-blocking and non-inheritable server-tools/instance-manager/listener.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/log.cc: added reference to port.h server-tools/instance-manager/manager.cc: moved all the signal code inside some #ifndef __WIN__ blocks server-tools/instance-manager/manager.h: change Options to always be a struct. Really surprised GCC was letting this go. Options was declared to be struct in some places and class in other places. server-tools/instance-manager/mysqlmanager.cc: added in the Windows service code. server-tools/instance-manager/options.cc: Added in the windows options for running as a service and the code for loading settings only from a single file server-tools/instance-manager/options.h: added definitions for the new Windows service vars and routines server-tools/instance-manager/parse_output.cc: added reference to port.h server-tools/instance-manager/priv.cc: added reference to port.h server-tools/instance-manager/priv.h: linuxthreads should not be visible on Windows server-tools/instance-manager/thread_registry.cc: more __WIN__ blocking server-tools/instance-manager/user_map.cc: fixed passwd file code to handle files with \r\n line endings server-tools/instance-manager/IMService.cpp: New BitKeeper file ``server-tools/instance-manager/IMService.cpp'' server-tools/instance-manager/IMService.h: New BitKeeper file ``server-tools/instance-manager/IMService.h'' server-tools/instance-manager/WindowsService.cpp: New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp'' server-tools/instance-manager/WindowsService.h: New BitKeeper file ``server-tools/instance-manager/WindowsService.h'' server-tools/instance-manager/mysqlmanager.vcproj: New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj'' server-tools/instance-manager/port.h: New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
if (signum == SIGTERM)
::SafeTerminateProcess(processhandle, 0);
else
::TerminateProcess(processhandle, -1);
return 0;
}
#endif
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
void Instance::kill_instance(int signum)
{
pid_t pid;
/* if there are no pid, everything seems to be fine */
if ((pid= options.get_pid()) != 0) /* get pid from pidfile */
{
if (kill(pid, signum) == 0)
{
/* Kill suceeded */
if (signum == SIGKILL) /* really killed instance with SIGKILL */
{
log_error("The instance %s is being stopped forcibly. Normally" \
"it should not happen. Probably the instance has been" \
"hanging. You should also check your IM setup",
Fixed a lot of compiler warnings (Mainly in mysqld and instance manager) Fixed some possible fatal wrong arguments to printf() style functions Initialized some not initialized variables Fixed bug in stored procedure and continue handlers (Fixes Bug#22150) include/mysql/plugin.h: Remove compiler warning mysql-test/mysql-test-run.pl: Ensure that --extern works on a clean tree (when 'var' directory doesn't exists) server-tools/instance-manager/commands.cc: Fixed possible use of unitialized variable server-tools/instance-manager/guardian.cc: Fixed wrong arguments to log_info() that could cause crashes server-tools/instance-manager/instance.cc: Fixed wrong arguments to log_info() and log_error() that could cause crashes server-tools/instance-manager/instance_options.cc: Fixed wrong arguments to log_error() that could cause crashes server-tools/instance-manager/mysql_connection.cc: Fixed wrong arguments to log_info() server-tools/instance-manager/parse.cc: Fixed possible use of unitialized variable server-tools/instance-manager/user_map.cc: Fixed wrong arguments to log_error() that could cause crashes sql/Makefile.am: Fix for bison 1.875 (It write an __attribute__() tag that was causing compiler failures) sql/ha_ndbcluster.cc: Fixed wrong snprintf() arguments Remoed not used variables sql/ha_ndbcluster_binlog.cc: Fixed compiler warning (unsigned/signed comparision) sql/handler.cc: Fixed wrong parameter to hton->binlog_func() sql/item_cmpfunc.cc: Removed compiler warnings sql/item_timefunc.cc: Removed compiler warnings sql/log.cc: fixed wrong argument to snprintf() sql/mysqld.cc: Removed compiler warnings Fixed wrong arguments to printf() sql/partition_info.cc: Removed compiler warnings sql/protocol.cc: reset is_fatal_error for stored procedures (Fix for Bug#22150) sql/sp_head.cc: More DBUG information Reset is_fatal_error in case of continue handler. (Fix for Bug#22150) sql/sql_base.cc: Removed compiler warnings sql/sql_class.h: More DBUG information sql/sql_insert.cc: Removed compiler warnings Initialize not initialized variable (fatal bug) sql/sql_parse.cc: Added DBUG_ASSERT to detect if stored procedure code returns with a wrong state Removed compiler warning sql/sql_plugin.cc: Fied wrong aruguments to printf() (Fatal bug) sql/sql_select.cc: Initailize not initialized variable. Remove compiler warnings Fixed wrong argument to printf() (Possible fatal error) sql/sql_view.cc: Removed compiler warnings sql/table.cc: Fixed wrong argument to printf() (Possible fatal)
2006-11-01 19:41:09 +02:00
options.instance_name.str);
/* After sucessful hard kill the pidfile need to be removed */
options.unlink_pidfile();
}
}
Post-review fixes + some bugs fixed + several minor features BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
2005-02-11 14:21:59 +03:00
}
return;
}
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
/*
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
Initialize instance parameters.
SYNOPSYS
Instance::init()
name_arg name of the instance
RETURN:
0 ok
!0 error
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
*/
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
int Instance::init(const LEX_STRING *name_arg)
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
{
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
mysqld_compatible= is_mysqld_compatible_name(name_arg);
Intermediate commit - just to make new files visible to bk in the new tree server-tools/instance-manager/Makefile.am: Fixed IM linking to avoid using both mysys and libmysql as the define the same symbols and therefore conflict server-tools/instance-manager/listener.cc: Added ability to listen network ports server-tools/instance-manager/listener.h: Various additions to the Listener_thread_args server-tools/instance-manager/log.cc: merge server-tools/instance-manager/log.h: merge server-tools/instance-manager/manager.cc: Fixes and additions to enable guardian functionality server-tools/instance-manager/manager.h: Changed manager() signature server-tools/instance-manager/mysqlmanager.cc: Various fixes server-tools/instance-manager/options.cc: Added handling of default values for new options in the Options struct. (such as default_user, default_password, monitoring_interval e.t.c) server-tools/instance-manager/options.h: Added new options to the Options struct sql/net_serv.cc: Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM server-tools/instance-manager/buffer.cc: Simple implementation of variable-length buffer server-tools/instance-manager/command.cc: Abstract command. All commands are derived from Command class server-tools/instance-manager/commands.h: Interfaces for all commands we have server-tools/instance-manager/factory.cc: Commands factory. This class hides command instantiation. The idea is to handle various protocols this way. (different commands for different protocols server-tools/instance-manager/guardian.cc: Guardian thread implementation (monitor and restart instances in case of a failure server-tools/instance-manager/guardian.h: Guardian_thread and Guardian_thread_args class interface. The Guardian_thread is responsible for monitoring and restarting instances server-tools/instance-manager/instance.cc: Instance class contains methods and data to manage a single instance server-tools/instance-manager/instance.h: This file contains class an instance class interface. The class is responsible for starting/stopping an instance server-tools/instance-manager/instance_map.cc: The instance repository. This class is also responsible for initialization of Instance class objects. server-tools/instance-manager/instance_options.cc: The Instance_options class contains all methods to get and handle options of an instance server-tools/instance-manager/mysql_connection.cc: The class responsible for handling MySQL client/server protocol connections server-tools/instance-manager/mysql_manager_error.h: The list of Instance Manger-specific errors server-tools/instance-manager/parse.cc: Simple query parser server-tools/instance-manager/parse.h: Parser interface server-tools/instance-manager/protocol.cc: Here implemented functions used to handle mysql client/server protocol server-tools/instance-manager/protocol.h: Interface for MySQL client/server protocol server-tools/instance-manager/thread_registry.cc: Thread registry stores information about every thread. It's main function is to provide graceful shutdown for all threads. server-tools/instance-manager/user_map.h: User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
return options.init(name_arg);
}
int Instance::complete_initialization(Instance_map *instance_map_arg,
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
const char *mysqld_path)
{
instance_map= instance_map_arg;
This is an implementation of two WL items: - WL#3158: IM: Instance configuration extensions; - WL#3159: IM: --bootstrap and --start-default-instance modes The following new statements have been added: - CREATE INSTANCE; - DROP INSTANCE; The behaviour of the following statements have been changed: - SET; - UNSET; - FLUSH INSTANCES; - SHOW INSTANCES; - SHOW INSTANCE OPTIONS; BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833: Delete: mysql-test/t/im_options_set.imtest BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921: Delete: mysql-test/r/im_options_set.result BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048: Delete: mysql-test/t/im_options_unset.imtest BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f: Delete: mysql-test/r/im_options_unset.result client/get_password.c: Change prototype to avoid casting when using C-strings (char *). include/m_string.h: Moved LEX_STRING to global header from sql/ to be accessible from all components (IM for one). include/my_sys.h: Added constants for modify_defaults_file(). include/mysql_com.h: Removed duplicated declarations. my_sys.h should be used instead. libmysql/get_password.c: Change prototype to avoid casting when using C-strings (char *). mysql-test/mysql-test-run.pl: Added environment variables to be used from tests. mysql-test/r/im_daemon_life_cycle.result: Column name has been changed in SHOW INSTANCES. mysql-test/r/im_life_cycle.result: 1. Column name has been changed in SHOW INSTANCES. 2. Removed redundant SHOW INSTANCE STATUS statements. mysql-test/r/im_utils.result: Updated the result file. mysql-test/t/im_daemon_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_daemon_life_cycle.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysql-test/t/im_life_cycle.imtest: 1. Polishing; 2. Fixed a test error in 1.1.2. mysql-test/t/im_utils.imtest: Get Instance Manager and managed mysqld-instances enough time to start. mysys/default.c: Pass the name of the section to the handler function as well. mysys/default_modify.c: Added REMOVE_SECTION functionality. server-tools/instance-manager/IMService.cpp: Polishing: be more verbose. server-tools/instance-manager/IMService.h: Polishing: added copyright. server-tools/instance-manager/Makefile.am: Added new files. server-tools/instance-manager/WindowsService.cpp: Polishing: according to The Coding Style, TRUE/FALSE must be used instead of true/false. server-tools/instance-manager/WindowsService.h: Polishing: added copyright. server-tools/instance-manager/command.h: Polishing: provide a comment for the main operation of "Command" class. server-tools/instance-manager/commands.cc: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/commands.h: 1. Added support for CREATE INSTANCE, DROP INSTANCE statements; 2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS; 3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements; server-tools/instance-manager/guardian.cc: Added operations to retrieve state of managed instances. server-tools/instance-manager/guardian.h: Added operations to retrieve state of managed instances. server-tools/instance-manager/instance.cc: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance.h: 1. Provided an operation to check validity of instance name. 2. Added an attribute to distiguish mysqld-instances, whose configuration should be kept backward-compatible. server-tools/instance-manager/instance_map.cc: 1. Used the operation to check validity of instance name; 2. Added operations to manage instances. server-tools/instance-manager/instance_map.h: Added operations to manage instances. server-tools/instance-manager/instance_options.cc: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/instance_options.h: Changed Instance_options so that it will be possible to manage options on the fly. server-tools/instance-manager/listener.cc: 1. Remove reference to the instance of Options; 2. Use new Options naming scheme. server-tools/instance-manager/listener.h: Remove reference to the instance of Options; server-tools/instance-manager/log.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/manager.cc: Added a common for IM operation to work with configuration file. server-tools/instance-manager/manager.h: Added a common for IM operation to work with configuration file. server-tools/instance-manager/messages.cc: Added messages for new errors. server-tools/instance-manager/mysql_connection.cc: 1. Move a constant to common place. 2. Polishing. server-tools/instance-manager/mysql_manager_error.h: Added new errors. server-tools/instance-manager/mysqlmanager.cc: 1. Use error code from Options::load(); 2. Eliminate type-casting warning on Windows. server-tools/instance-manager/options.cc: Added support for user-management command-line options. server-tools/instance-manager/options.h: Added support for user-management command-line options. server-tools/instance-manager/parse.cc: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse.h: 1. Added support of new statements: - CREATE INSTANCE; - DROP INSTANCE. 2. Modified SET/UNSET. server-tools/instance-manager/parse_output.cc: Sorted out header files. server-tools/instance-manager/parse_output.h: Sorted out header files. server-tools/instance-manager/portability.h: 1. Added constants for Windows. 2. Moved system-dependent defines from instance_options.cc. server-tools/instance-manager/priv.cc: Updated version. server-tools/instance-manager/priv.h: Added some global constants. server-tools/instance-manager/protocol.cc: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/protocol.h: Replaced NAME_WITH_LENGTH by LEX_STRING. server-tools/instance-manager/thread_registry.cc: Polishing: use TRUE/FALSE instead of true/false. server-tools/instance-manager/user_map.cc: Added support for managing password database. server-tools/instance-manager/user_map.h: Added support for managing password database. sql/sp.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/sp_head.cc: Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization. sql/spatial.cc: Removed LEX_STRING_WITH_INIT. sql/spatial.h: Removed LEX_STRING_WITH_INIT. sql/sql_string.h: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/sql_trigger.cc: Moved STRING_WITH_LEN() macro out from sql (to m_string.h). sql/structs.h: Removed LEX_STRING_WITH_INIT. support-files/mysql.server.sh: Instruct Instance Manager to work in mysqld-safe compatible mode for backward compatibility. mysql-test/r/im_cmd_line.result: Added result file. mysql-test/r/im_instance_conf.result: Added result file. mysql-test/r/im_options.result: Added result file. mysql-test/t/im_cmd_line.imtest: IM command-line options test. mysql-test/t/im_instance_conf-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_instance_conf.imtest: Added a new test case for checking instance-management. mysql-test/t/im_life_cycle-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. mysql-test/t/im_options.imtest: Join im_options_set and im_options_unset and add new tests. mysql-test/t/im_utils-im.opt: Set minimal monitoring interval for Instance Manager to speed up testing. server-tools/instance-manager/exit_codes.h: New file for defining exit codes for user-management mode. server-tools/instance-manager/user_management_commands.cc: User-management commands implementation. server-tools/instance-manager/user_management_commands.h: User-management command declarations.
2006-05-18 18:57:50 +04:00
configured= !options.complete_initialization(mysqld_path);
return 0;
/*
TODO: return actual status (from
Instance_options::complete_initialization()) here.
*/
}