summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2005-01-10 15:15:49 +0100
committerunknown <guilhem@mysql.com>2005-01-10 15:15:49 +0100
commit24b048f5f49fc6bc33454a9077c1d0b1cf25e6be (patch)
tree8fd997ff7ccc716a48a2f68d64021a4e5f5f9328
parent0b7895b9b14981926c34fbd833aed0d9235da68a (diff)
parent87e1a296abe9e2962e7047b4f92e57425a858f70 (diff)
downloadmariadb-git-24b048f5f49fc6bc33454a9077c1d0b1cf25e6be.tar.gz
Merge mysql.com:/home/mysql_src/mysql-4.1-clean
into mysql.com:/home/mysql_src/mysql-5.0-clean sql/net_serv.cc: Auto merged
-rwxr-xr-xBuild-tools/Bootstrap3
-rw-r--r--mysql-test/r/rpl_many_optimize.result9
-rw-r--r--mysql-test/t/rpl_many_optimize.test20
-rw-r--r--sql/net_serv.cc2
4 files changed, 33 insertions, 1 deletions
diff --git a/Build-tools/Bootstrap b/Build-tools/Bootstrap
index 10211dbb59c..10ebc5c2dd1 100755
--- a/Build-tools/Bootstrap
+++ b/Build-tools/Bootstrap
@@ -38,7 +38,7 @@ $opt_dry_run= undef;
$opt_export_only= undef;
$opt_help= $opt_verbose= 0;
$opt_log= undef;
-$opt_mail= "";
+$opt_mail= "build\@mysql.com";
$opt_pull= undef;
$opt_revision= undef;
$opt_suffix= "";
@@ -431,6 +431,7 @@ Options:
include a log file snippet, if logging is enabled)
Note that the \@-Sign needs to be quoted!
Example: --mail=user\\\@domain.com
+ Default: build\@mysql.com
-q, --quiet Be quiet
-p, --pull Update the source BK trees before building
-r, --revision=<rev> Export the tree as of revision <rev>
diff --git a/mysql-test/r/rpl_many_optimize.result b/mysql-test/r/rpl_many_optimize.result
new file mode 100644
index 00000000000..b2148892591
--- /dev/null
+++ b/mysql-test/r/rpl_many_optimize.result
@@ -0,0 +1,9 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+create table t1 (a int not null auto_increment primary key, b int, key(b));
+INSERT INTO t1 (a) VALUES (1),(2);
+drop table t1;
diff --git a/mysql-test/t/rpl_many_optimize.test b/mysql-test/t/rpl_many_optimize.test
new file mode 100644
index 00000000000..525e23abe15
--- /dev/null
+++ b/mysql-test/t/rpl_many_optimize.test
@@ -0,0 +1,20 @@
+# Test for BUG#7658 "optimize crashes slave thread (1 in 1000)]"
+
+source include/master-slave.inc;
+
+create table t1 (a int not null auto_increment primary key, b int, key(b));
+INSERT INTO t1 (a) VALUES (1),(2);
+# Now many OPTIMIZE to test if we crash (BUG#7658)
+let $1=300;
+disable_query_log;
+disable_result_log;
+while ($1)
+{
+ eval OPTIMIZE TABLE t1;
+ dec $1;
+}
+enable_result_log;
+enable_query_log;
+drop table t1;
+# Bug was that slave segfaulted after ~ a hundred of OPTIMIZE (or ANALYZE)
+sync_slave_with_master;
diff --git a/sql/net_serv.cc b/sql/net_serv.cc
index 3bec00a5177..55f56645f82 100644
--- a/sql/net_serv.cc
+++ b/sql/net_serv.cc
@@ -255,6 +255,8 @@ my_bool
my_net_write(NET *net,const char *packet,ulong len)
{
uchar buff[NET_HEADER_SIZE];
+ if (unlikely(!net->vio)) // nowhere to write
+ return 0;
/*
Big packets are handled by splitting them in packets of MAX_PACKET_LENGTH
length. The last packet is always a packet that is < MAX_PACKET_LENGTH.