Commit graph

60 commits

Author SHA1 Message Date
anozdrin/alik@alik.opbmk
100c19c01f Merge fix. 2007-02-22 22:56:43 +03:00
anozdrin/alik@alik.opbmk
8a7f5ce30d Merge alik.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt
into  alik.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merge
2007-02-22 21:59:43 +03:00
anozdrin/alik@alik.opbmk
76f813a52e Fix for BUG#24415: Instance manager test im_daemon_life_cycle fails randomly.
The cause of im_daemon_life_cycle.imtest random failures was the following
behaviour of some implementations of LINUX threads: let's suppose that a
process has several threads (in LINUX threads, there is a separate process for
each thread). When the main process gets killed, the parent receives SIGCHLD
before all threads (child processes) die. In other words, the parent receives
SIGCHLD, when its child is not completely dead.

In terms of IM, that means that IM-angel receives SIGCHLD when IM-main is not dead
and still holds some resources. After receiving SIGCHLD, IM-angel restarts
IM-main, but IM-main failed to initialize, because previous instance (copy) of
IM-main still holds server socket (TCP-port).

Another problem here was that IM-angel restarted IM-main only if it was killed
by signal. If it exited with error, IM-angel thought it's intended / graceful
shutdown and exited itself.

So, when the second instance of IM-main failed to initialize, IM-angel thought
it's intended shutdown and quit.

The fix is
  1. to change IM-angel so that it restarts IM-main if it exited with error code;
  2. to change IM-main so that it returns proper exit code in case of failure.
2007-02-20 22:31:50 +03:00
anozdrin/alik@alik.opbmk
61b624eb76 Polishing:
1. use MySQL headers instead of system ones;
  2. move logical part of code into a separate function.
2007-02-20 21:28:30 +03:00
anozdrin/alik@alik.opbmk
f97d10d236 Patch for IM in scope of working on BUG#24415: Instance manager test
im_daemon_life_cycle fails randomly.

1. Move IM-angel functionality into a separate file, create Angel class.
2. Be more verbose;
3. Fix typo in FLUSH INSTANCES implementation;
4. Polishing.
2007-02-18 15:45:28 +03:00
malff/marcsql@weblab.(none)
0055056c91 Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-merge
2007-01-02 14:18:13 -07:00
kent@kent-amd64.(none)
58763e383e Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-31 01:32:21 +01:00
kent@mysql.com/kent-amd64.(none)
6523aca729 my_strtoll10-x86.s:
Corrected spelling in copyright text
Makefile.am:
  Don't update the files from BitKeeper
Many files:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header 
Many files:
  Added GPL copyright text
Removed files:
  Docs/Support/colspec-fix.pl
  Docs/Support/docbook-fixup.pl
  Docs/Support/docbook-prefix.pl
  Docs/Support/docbook-split
  Docs/Support/make-docbook
  Docs/Support/make-makefile
  Docs/Support/test-make-manual
  Docs/Support/test-make-manual-de
  Docs/Support/xwf
2006-12-31 01:02:27 +01:00
kent@kent-amd64.(none)
be15e3bc15 Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-23 20:20:40 +01:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
anozdrin/alik@booka.
b534ca4bc0 Fix for the following bugs:
- BUG#22306: STOP INSTANCE can not be applied for instances in Crashed,
    Failed and Abandoned;
  - BUG#23476: DROP INSTANCE does not work
  - BUG#23215: STOP INSTANCE takes too much time

BUG#22306:
The problem was that STOP INSTANCE checked that mysqld is up and running.
If it was not so, STOP INSTANCE reported an error. Now, STOP INSTANCE
reports an error if the instance has been started (mysqld can be down).

BUG#23476:
The problem was that DROP INSTANCE tried to stop inactive instance. The fix is
trivial.

BUG#23215:
The problem was that locks were not acquired properly, so the
instance-monitoring thread could not acquire the mutex, holded by the
query-processing thread.

The fix is to simplify locking scheme by moving instance-related information to
Instance-class out of Guardian-class. This allows to get rid of storing a
separate list of Instance-information in Guardian and keeping it synchronized
with the original list in Instance_map.
2006-11-30 12:23:55 +03:00
anozdrin/alik@booka.
720e352a82 Short fix for Windows. 2006-11-21 21:43:24 +03:00
anozdrin/alik@booka.
3e042c6d7b Polishing:
- change some return types from int to bool;
  - add [ERROR] tag to log_error() output;
  - add [INFO] tag to log_info() output;
  - change log messages to be more consistent.
2006-11-21 17:47:14 +03:00
anozdrin/alik@booka.
ff0325f162 Polishing:
1) add support for joinable threads to Thread class;
2) move checking of thread model to Manager from mysqlmanager.cc,
because it is needed only for IM-main process.
2006-11-21 17:31:03 +03:00
anozdrin/alik@booka.site
420d8b070b Polishing + make the code compiled on Windows. 2006-11-20 15:37:12 +03:00
kostja@bodhi.local
2fc4562d63 Port cleanups, trivial refactoring and code rearrangements from
Alik's patch for BUG#22306: STOP INSTANCE can not be applied for 
instances in Crashed, Failed and Abandoned" to ease review process.
Evaluate global variable linuxthreads before starting threads to avoid
a race.
2006-11-18 01:34:44 +03:00
kostja@bodhi.local
7278f45bfd Replace the approach using Foo_thread_args + Foo_thread and manually
spawned threads with a reusable class Thread.

This is the second idea implemented in the Alik's patch for
BUG#22306: STOP INSTANCE can not be applied for instances in Crashed,
Failed and Abandoned.
Commiting separately to ease review process.
2006-11-17 16:11:04 +03:00
kostja@bodhi.local
2f69dfb28f Cleanup: manually port the polishing parts from Alik's changeset for
BUG#22306: STOP INSTANCE can not be applied for instances in Crashed,
Failed and Abandoned
2006-11-16 23:36:20 +03:00
anozdrin/alik@alik.
f40a9d2ece Fix for BUG#17486: IM: race condition on exit.
The problem was that IM stoped guarded instances on shutdown,
but didn't wait for them to stop.

The fix is to wait for guarded instances to stop before exitting
from the main thread.

The idea is that Instance-monitoring thread should add itself
to Thread_registry so that it will be taken into account on shutdown.
However, Thread_registry should not signal it on shutdown in order to
not interrupt wait()/waitpid().
2006-10-24 18:23:16 +04:00
kostja@bodhi.local
2fecf79536 Merge bodhi.local:/opt/local/work/mysql-5.0-runtime
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-10-23 12:35:56 +04:00
anozdrin/alik@alik.
643606cac9 Instance Manager polishing. 2006-10-20 22:26:40 +04:00
petr/cps@mysql.com/owlet.local
96c6f6f5c2 Fix Bug #19368 Failure in "flush_instances" causes assert in Thread_registry
Stop guardian and all the rest of threads before shutdown in case of an error
2006-10-05 22:07:21 +04:00
anozdrin@mysql.com
42ef881906 Merge mysql.com:/home/alik/MySQL/devel/5.0-to-be-merged
into  mysql.com:/home/alik/MySQL/devel/5.1-merged
2006-06-20 18:28:28 +04:00
anozdrin@mysql.com
a992833d83 The second fix for BUG#19391: IM fails to start after two executions. 2006-06-19 14:16:10 +04:00
jani@a193-229-222-105.elisa-laajakaista.fi
c81b4c01bf Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new
2006-05-30 16:07:49 +03:00
anozdrin@mysql.com
c368dc18b7 Fix for BUG#19391: IM fails to start after two executions 2006-05-29 17:26:52 +04:00
anozdrin@mysql.com
4a43bd1a3a Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/mnt/raid/MySQL/devel/5.1-rt-wl3158-merged
2006-05-22 14:22:58 +04:00
anozdrin@mysql.com
417440fb6b Fix compilation error on FC4. 2006-05-18 22:31:28 +04:00
anozdrin@mysql.com
c1113af15c 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;
2006-05-18 18:57:50 +04:00
anozdrin@mysql.com
3b74668bfa Partial fix for BUG#14106: IM: im_life_cycle and im_utils
tests fail on FreeBSD.

The patch contains of the following:
  - make Instance Manager, running in the daemon mode, dump
    the pid of angel-process in the special file;
  - default value of angel-pid-file-name is 'mysqlmanager.angel.pid';
  - if ordinary (IM) pid-file-name is specified in the configuration,
    angel-pid-file-name is updated according to the following
    rule: extension of the basename of pid-file-name is replaced by
    '.angel.pid.
    For example:
    - pid-file-name: /tmp/im.pid
      => angel-pid-file-name: /tmp/im.angel.pid
    - pid-file-name: /tmp/im.txt
      => angel-pid-file-name: /tmp/im.angel.pid
    - pid-file-name: /tmp/5.0/im
      => angel-pid-file-name: /tmp/5.0/im.angel.pid
  - add support for configuration option to customize angel
    pid file name;
  - fix test suite to use angel pid to kill Instance Manager
    by all means if something went wrong.

Background
----------

The problem is that on some OSes (FreeBSD for one) Instance
Manager does not get SIGTERM, so can not shutdown gracefully.
Test suite wasn't able to cope with it, so this leads to the
mess in test results.

The problem should be split into two:
  - fix signal handling;
  - fix test suite.

This patch fixes test suite so that it will be able to kill
uncooperative Instance Manager. In order to achieve this,
test suite needs to know PID of IM Angel process.
2006-05-06 13:57:56 +04:00
petr@mysql.com
cb5e54e1bd Fix race condition: instance map wasn't locked for the
duration of the whole 'flush instances'. As a consequence,
it was possible to query instance map, while it is in the
inconsistent state. The patch was reworked after review.
2006-02-21 15:57:56 +03:00
petr@mysql.com
922cdfa025 fix Bug #14103 IM tests fail on SCO 2005-10-28 14:29:46 +04:00
petr@mysql.com
be6bb43021 Added a comment re Bug#14164 2005-10-27 04:00:31 +04:00
petr@mysql.com
5423ab00de Fix im tests on powermacg5: temporarily fix for problem with Darwin kernels. For more details see
bug 2030. Will push a proper fix later
2005-10-17 05:14:03 +04:00
konstantin@mysql.com
344144ad14 Cleanup the instance manager code. 2005-08-29 23:29:35 +04:00
petr@mysql.com
22ccfb4d67 IM port cleanup 2005-08-05 17:02:06 +04:00
petr@mysql.com
a64f264e4b IM port fixes: fix crash on startup, add more error checking, get rid of unnecessary code. 2005-08-05 14:35:30 +04:00
reggie@fedora.(none)
72c0a021e9 Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.0
into  fedora.(none):/home/reggie/bk/im_patch
2005-08-04 09:33:44 -05:00
reggie@fedora.(none)
8cb3bd41c8 alot of formatting changes that came out of JimW's review 2005-08-03 16:20:27 -05:00
petr@mysql.com
9644bc3e2b Post-review fixes for WL#2713 "Change IM behaviour so, that it only reads and alters one config file only." 2005-07-21 22:40:53 +04:00
petr@mysql.com
b9fcdfbb0f WL #2713 Change IM behaviour so, that it only reads and alters one config file only.
Implemented on brian's request.
2005-07-21 14:21:23 +04:00
reggie@fedora.(none)
f3de5d6b69 initial import of Windows port of IM. 2005-07-20 10:55:40 -05:00
petr@mysql.com
180d0ed620 post-review fixes 2005-05-16 01:54:02 +04:00
petr@mysql.com
b072eaa3da Fix for AIX compilation failure: sacred knowledge of my_global.h nature (it should be
included before any other include) was hidden from me.
2005-03-22 02:04:14 +03:00
petr@mysql.com
912dfdfa34 post-review fixes + cleanup + some minor fixes 2005-02-27 18:41:34 +03:00
petr@mysql.com
dbc0937dd0 made IM to work with --defaults-file smoothly 2005-02-18 14:58:30 +03:00
petr@mysql.com
59d8e51150 some more cleanups and fixes 2005-02-15 04:38:33 +03:00
petr@mysql.com
bb8e5b6227 various fixes 2005-02-13 15:13:33 +03:00
petr@mysql.com
6b50b5b087 Post-review fixes + some bugs fixed + several minor features 2005-02-11 14:21:59 +03:00
petr@mysql.com
63acf2a8be Various fixes (cleanups, valgrind, makefiles, ...) 2005-02-03 20:48:58 +03:00