List:Commits« Previous MessageNext Message »
From:marko.makela Date:June 14 2010 6:35am
Subject:bzr commit into mysql-trunk-innodb branch (marko.makela:3099) Bug#38999
View as plain text  
#At file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ based on revid:marko.makela@strippedclg7j7n1ynvs

 3099 Marko Mäkelä	2010-06-14
      Merge a change from mysql-5.1-innodb:
      ------------------------------------------------------------
      revno: 3506
      revision-id: sergey.glukhov@stripped718-04mpk5kjxvnrxdu8
      parent: sergey.glukhov@stripped-20100609120734-ndy2281wau9067zv
      committer: Sergey Glukhov <Sergey.Glukhov@stripped>
      branch nick: mysql-5.1-innodb
      timestamp: Wed 2010-06-09 16:17:18 +0400
      message:
        Bug#38999 valgrind warnings for update statement in function compare_record()
        (InnoDB plugin branch)
      
       @ mysql-test/suite/innodb_plugin/r/innodb_mysql.result
          test case
      
       @ mysql-test/suite/innodb_plugin/t/innodb_mysql.test
          test case
      
       @ storage/innodb_plugin/row/row0sel.c
          init null bytes with default values as they might be
          left uninitialized in some cases and these uninited bytes
          might be copied into mysql record buffer that leads to
          valgrind warnings on next use of the buffer.

    modified:
      mysql-test/suite/innodb/r/innodb_mysql.result
      mysql-test/suite/innodb/t/innodb_mysql.test
      storage/innobase/row/row0sel.c
=== modified file 'mysql-test/suite/innodb/r/innodb_mysql.result'
--- a/mysql-test/suite/innodb/r/innodb_mysql.result	revid:marko.makela@strippedom-20100608122645-psnrclg7j7n1ynvs
+++ b/mysql-test/suite/innodb/r/innodb_mysql.result	revid:marko.makela@strippedom-20100614063501-k55k1188wsovx36r
@@ -2413,6 +2413,18 @@ id	select_type	table	type	possible_keys
 1	SIMPLE	t1	const	PRIMARY	NULL	NULL	NULL	1	Impossible ON condition
 1	SIMPLE	t2	ALL	NULL	NULL	NULL	NULL	3	Using where
 DROP TABLE t1,t2;
+#
+# Bug#38999 valgrind warnings for update statement in function compare_record()
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 values (1),(2),(3),(4),(5);
+INSERT INTO t2 values (1);
+SELECT * FROM t1 WHERE a = 2;
+a
+2
+UPDATE t1,t2 SET t1.a = t1.a + 100 WHERE t1.a = 1;
+DROP TABLE t1,t2;
 End of 5.1 tests
 #
 # Test for bug #39932 "create table fails if column for FK is in different

=== modified file 'mysql-test/suite/innodb/t/innodb_mysql.test'
--- a/mysql-test/suite/innodb/t/innodb_mysql.test	revid:marko.makela@stripped08122645-psnrclg7j7n1ynvs
+++ b/mysql-test/suite/innodb/t/innodb_mysql.test	revid:marko.makela@stripped063501-k55k1188wsovx36r
@@ -649,6 +649,20 @@ EXPLAIN SELECT t1.id,t2.id FROM t2 LEFT
 
 DROP TABLE t1,t2;
 
+--echo #
+--echo # Bug#38999 valgrind warnings for update statement in function compare_record()
+--echo #
+
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 values (1),(2),(3),(4),(5);
+INSERT INTO t2 values (1);
+
+SELECT * FROM t1 WHERE a = 2;
+UPDATE t1,t2 SET t1.a = t1.a + 100 WHERE t1.a = 1;
+
+DROP TABLE t1,t2;
+
 --echo End of 5.1 tests
 
 

=== modified file 'storage/innobase/row/row0sel.c'
--- a/storage/innobase/row/row0sel.c	revid:marko.makela@stripped
+++ b/storage/innobase/row/row0sel.c	revid:marko.makela@oracle.com-20100614063501-k55k1188wsovx36r
@@ -2678,6 +2678,12 @@ row_sel_store_mysql_rec(
 		prebuilt->blob_heap = NULL;
 	}
 
+	/* init null bytes with default values as they might be
+	left uninitialized in some cases and these uninited bytes
+	might be copied into mysql record buffer that leads to
+	valgrind warnings */
+	memcpy(mysql_rec, prebuilt->default_rec, prebuilt->null_bitmap_len);
+
 	for (i = 0; i < prebuilt->n_template; i++) {
 
 		templ = prebuilt->mysql_template + i;

Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20100614063501-k55k1188wsovx36r.bundle
Thread
bzr commit into mysql-trunk-innodb branch (marko.makela:3099) Bug#38999marko.makela14 Jun