Commit graph

58152 commits

Author SHA1 Message Date
He Zhenxing
5f71056f0e Auto merge postfix of Bug#49020 2009-12-04 13:46:06 +08:00
He Zhenxing
30d2870a9c Post fix for previous patch of Bug#49020
Added back n_frees, use 'clear' instead of 'free' since memory is
not freed here.


plugin/semisync/semisync_master.cc:
  Added back n_frees, use 'clear' instead of 'free' in the message since memory is not freed here.
2009-12-04 13:43:38 +08:00
He Zhenxing
f73b44d617 Auto Merge fix for Bug#49170 2009-12-04 10:05:43 +08:00
He Zhenxing
9e6430c54f Auto merge fix for Bug#49020 2009-12-04 10:04:14 +08:00
He Zhenxing
c926610d7c Bug#49020 Semi-sync master crashed with free_pool == NULL, assertion `free_pool_'
Before this patch, semisync assumed transactions running in parallel
can not be larger than max_connections, but this is not true when
the event scheduler is executing events, and cause semisync run out
of preallocated transaction nodes.

Fix the problem by allocating transaction nodes dynamically.

This patch also fixed a possible deadlock when running UNINSTALL
PLUGIN rpl_semi_sync_master and updating in parallel. Fixed by
releasing the internal Delegate lock before unlock the plugins.

mysql-test/suite/rpl/t/rpl_semi_sync_event.test:
  Add test case for bug#49020
plugin/semisync/semisync_master.cc:
  Allocating TranxNode dynamically
plugin/semisync/semisync_master.h:
  Allocating TranxNode dynamically
sql/rpl_handler.cc:
  Unlock plugins after we have released the Delegate lock to avoid possible deadlock when uninstalling semisync master plugin and doing update in parallel.
2009-12-04 09:46:33 +08:00
He Zhenxing
db1fee989d Bug#49170 Inconsistent placement of semisync plugin prevents it from getting tested
Add $basedir/lib/plugin to the search paths for semisync plugins.
2009-12-04 09:43:39 +08:00
He Zhenxing
886a489bc3 Bug#48351 Inconsistent library names for semisync plugin
The semisync plugin library names on Unix like systems were prefixed with
'lib', which did not follow the conventions.

Fix the problem by removing the 'lib' prefix on Unix systems.


mysql-test/mysql-test-run.pl:
  Remove 'lib' prefix for semisync plugin library names
plugin/semisync/Makefile.am:
  Remove 'lib' prefix for semisync plugin library names
plugin/semisync/plug.in:
  Remove 'lib' prefix for semisync plugin library names
2009-11-27 16:49:45 +08:00
He Zhenxing
a02972d820 Skip semisync test if the plugin-dir is not set to semisync plugin dir 2009-10-23 21:26:17 +08:00
He Zhenxing
0e93befd36 Postfix of previews commit, add missing file
plugin/semisync/CMakeLists.txt:
  Add CMakeLists.txt for semisync
2009-10-23 15:22:20 +08:00
He Zhenxing
e9acb9f021 Add semi-sync support for Windows
CMakeLists.txt:
  Add plugin/semisync subdirectory
mysql-test/mysql-test-run.pl:
  Check for semisync dll for Windows
mysql-test/suite/rpl/r/rpl_semi_sync.result:
  Update result file
mysql-test/suite/rpl/t/rpl_semi_sync.test:
  Test semi-sync on Windows
plugin/semisync/semisync_master.cc:
  Define gettimeofday for Windows
2009-10-23 12:56:30 +08:00
He Zhenxing
d8dee8cb32 Postfix of bug#45674
rpl_semi_sync_master_wait_sessions was reset by FLUSH STATUS,
which could cause the master fail to wake up waiting sessions and
result in master timeout waiting for slave reply.

rpl_semi_sync_master_wait_session should not be reset, this 
problem is fixed by this patch.


plugin/semisync/semisync_master_plugin.cc:
  Change wait_sessions from SHOW_LONG back to SHOW_FUNC so that it will not be reset by FLUSH STATUS.
2009-10-18 20:29:03 +08:00
He Zhenxing
48e98026e2 Backport post fix for semisync
Remove functions that no longer needed
Fix warning suppressions

mysql-test/suite/rpl/t/rpl_semi_sync.test:
  Fix warning suppressions
plugin/semisync/semisync_slave.cc:
  Remove functions that no longer needed
plugin/semisync/semisync_slave.h:
  Remove functions that no longer needed
2009-10-12 21:21:13 +08:00
He Zhenxing
1a7c7a4066 Backport BUG#47298 Semisync: always wait until timeout if no semi-sync slave available
Add an option to control whether the master should keep waiting
until timeout when it detected that there is no semi-sync slave
available.

The bool option 'rpl_semi_sync_master_wait_no_slave' is 1 by
defalt, and will keep waiting until timeout. When set to 0, the
master will switch to asynchronous replication immediately when
no semi-sync slave is available.
2009-10-12 21:15:32 +08:00
He Zhenxing
26b47d9347 BUG#45674 FLUSH STATUS does not reset semisynchronous counters
Semi-sync status were not reset by FLUSH STATUS, this was because
all semi-sync status variables are defined as SHOW_FUNC and FLUSH
STATUS could only reset SHOW_LONG type variables.

This problem is fixed by change all status variables that should
be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG.

After the fix, the following status variables will be reset by
FLUSH STATUS:
  Rpl_semi_sync_master_yes_tx
  Rpl_semi_sync_master_no_tx

Note: normally, FLUSH STATUS itself will be written into binlog
and be replicated, so after FLUSH STATS, one of
  Rpl_semi_sync_master_yes_tx
  Rpl_semi_sync_master_no_tx
can be 1 dependent on the semi-sync status. So it's recommended
to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this.
2009-10-12 21:03:04 +08:00
He Zhenxing
825dce21b3 Backport Bug#45852 Semisynch: Last_IO_Error: Fatal error: Failed to run 'after_queue_event' hook
Errors when send reply to master should never cause the IO thread
to stop, because master can fall back to async replication if it
does not get reply from slave.

The problem is fixed by deliberately ignoring the return value of
slaveReply.
2009-10-12 20:57:30 +08:00
He Zhenxing
f8155de078 Backport BUG#45848 Semisynchronous replication internals are visible in SHOW PROCESSLIST and logs
Semi-sync uses an extra connection from slave to master to send
replies, this is a normal client connection, and used a normal
SET query to set the reply information on master, which is visible
to user and may cause some confusion and complaining.

This problem is fixed by using the method of sending reply by
using the same connection that is used by master dump thread to
send binlog to slave. Since now the semi-sync plugins are integrated
with the server code, it is not a problem to use the internal net
interfaces to do this.

The master dump thread will mark the event requires a reply and
wait for the reply when the event just sent is the last event
of a transaction and semi-sync status is ON; And the slave will
send a reply to master when it received such an event that requires
a reply.
2009-10-12 20:55:01 +08:00
He Zhenxing
d8724a4538 Fix semisync master/slave status always showed as OFF on sparc
On sparc, semisync master/slave status is always showed as OFF, this
is fixed by change rpl_semisync_master/slave_status variables from
long to char.

plugin/semisync/semisync_master.cc:
  Change rpl_semisync_master_status variables from long to char
plugin/semisync/semisync_master.h:
  Change rpl_semisync_master_status variables from long to char
plugin/semisync/semisync_slave.cc:
  Change rpl_semisync_slave_status variables from long to char
plugin/semisync/semisync_slave.h:
  Change rpl_semisync_slave_status variables from long to char
2009-10-03 13:00:05 +08:00
He Zhenxing
328dabf473 Post fix SEMISYNC_PLUGIN_OPT when semi-sync plugins are not found
mysql-test/mysql-test-run.pl:
  Set SEMISYNC_PLUGIN_OPT to '--plugin-dir=' when semi-sync plugins are not found
2009-10-02 19:16:06 +08:00
He Zhenxing
d9286fbc22 Post fix backporting wl#1720
Fix mtr semisync plugin option paths
2009-10-02 12:11:50 +08:00
He Zhenxing
43fe9e045c Backporting BUG#40244 Optimized build of mysqld crashes when built with Sun Studio on SPARC 2009-09-30 19:36:35 +08:00
He Zhenxing
6799db2504 Back porting the test case for semi-sync 2009-09-30 16:09:31 +08:00
He Zhenxing
623ed58cfd Backporting WL#4398 WL#1720
Backporting BUG#44058 BUG#42244 BUG#45672 BUG#45673
Backporting BUG#45819 BUG#45973 BUG#39012
2009-09-26 12:49:49 +08:00
Jonathan Perkin
e465d11383 Merge from mysql-5.1.39-release 2009-09-21 12:10:32 +02:00
Jonathan Perkin
c7d32876f3 Install mysqld.lib 2009-09-04 17:45:07 +02:00
Bjorn Munch
0b9bc329b0 merge from 5.1-mtr 2009-09-03 19:07:35 +02:00
Jonathan Perkin
19d0529819 Raise version number after cloning 5.1.39 2009-09-03 18:20:43 +02:00
Bjorn Munch
3948eef1a1 3rd merge from main 2009-09-03 08:44:22 +02:00
Bjorn Munch
863b53e922 merge 2009-09-03 08:39:29 +02:00
Bjorn Munch
b5e3f4a358 A few suppression follow-ups 2009-09-03 08:38:06 +02:00
Bjorn Munch
4d676f314c Bug #47075 Wildcards in experimental test names destroyed when tested first time
Extract substr into local variable
2009-09-03 08:19:54 +02:00
Jonathan Perkin
0644b0acfa Merge from mysql-5.1.38-release 2009-09-03 01:48:06 +02:00
Bjorn Munch
31f9d5fd16 second merge from main, with adaptions 2009-09-02 23:29:11 +02:00
Bjorn Munch
a829604260 first merge from main 2009-09-02 18:58:17 +02:00
Georgi Kodinov
41427950ed null merge of 5.0 fixes backported from 5.1 2009-09-02 18:45:33 +03:00
Georgi Kodinov
b64e7fb5be fixed a valgrind warning in partition_pruning 2009-09-02 18:42:08 +03:00
Georgi Kodinov
183607b8c8 Backported the --parallel=str option from mtr2 for backward compatibility
with the newer pb2 testing environments
2009-09-02 16:36:52 +03:00
Georgi Kodinov
50d8792b58 merge 2009-09-02 16:07:52 +03:00
Georgi Kodinov
607c399f8b merge 2009-09-02 15:33:18 +03:00
Georgi Kodinov
dedcfe2f3d automerge 2009-09-02 15:22:32 +03:00
Georgi Kodinov
7c9e39f5c5 fixed a valgrind warning in partitioning code 2009-09-02 15:20:47 +03:00
Davi Arnaut
66aa565d78 Manual merge. 2009-09-02 09:12:18 -03:00
Davi Arnaut
e512d69434 Post-merge fix. Observe C declaration placement rules. 2009-09-02 09:02:22 -03:00
Davi Arnaut
3668f8a5be Increase thread stack size on HP-UX when built with debug. 2009-09-02 08:45:48 -03:00
Georgi Kodinov
453a941d50 moved version to 5.0-main 2009-09-02 13:23:37 +03:00
Georgi Kodinov
f0720480dc Fixed win32 compilation warnings 2009-09-02 13:22:47 +03:00
Georgi Kodinov
27065edafb fixed compilation warnings 2009-09-02 13:09:01 +03:00
Bjorn Munch
fe3ea31d93 Bug #32296 mysqltest fails to parse "append_file" inside a "while", it works inside
a "if"
Bug #41913 mysqltest cannot source files from if inside while
Some commands require additional processing which only works first time
Keep content for write_file or append_file with the st_command struct
Add tests for those cases to mysqltest.test
2009-09-02 11:17:33 +02:00
Bjorn Munch
d4854d7494 merge 2009-09-01 19:31:28 +02:00
Mattias Jonsson
8e95f4af9e merge to update with latest mysql-5.1-bugteam 2009-09-01 15:54:59 +02:00
Georgi Kodinov
c001f9cc16 Fixed a problem in how BUILD/check_cpu handles Core 2 Duo processors.
This fixes the regression introduced in 5.1 that prevents 64 bit builds on Intel while still keeping the core2 hack operational so the cluster can build.
2009-09-01 16:39:13 +03:00