Bug #33208 main.mysqldump fails randomly
Submitted: 13 Dec 2007 12:19 Modified: 11 Sep 2008 20:54
Reporter: Hiroshi Kise Email Updates:
Status: Can't repeat Impact on me:
None 
Category:Tests Severity:S3 (Non-critical)
Version:5.0.51 OS:Any
Assigned to: Matthias Leich CPU Architecture:Any
Tags: pushbuild, sporadic, test failure

[13 Dec 2007 12:19] Hiroshi Kise
Description:
mysqldump                      [ fail ]

Warning: World-writable config file '/tmp/MySQL/mysql-5.0.51/mysql-test/std_data/bug15328.cnf' is ignored
mysqldump: Couldn't find table: "non_existing"
mysqldump: Got error: 1356: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when using LOCK TABLES
mysqldump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
mysqldump: user2 has insufficent privileges to SHOW CREATE PROCEDURE `sp1`!
--- /tmp/MySQL/mysql-5.0.51/mysql-test/r/mysqldump.result        2007-11-15 17:28:37.000000000 +0300
+++ /tmp/MySQL/mysql-5.0.51/mysql-test/var/log/mysqldump.reject  2007-12-13 07:07:05.000000000 +0300
@@ -1747,7 +1747,6 @@
 #
 # BUG#15328 Segmentation fault occured if my.cnf is invalid for escape :q:1sequence
 #
---fields-optionally-enclosed-by="
 #
 # BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
 #

mysqltest: Result content mismatch

How to repeat:
Run the test suite, using a community build.

Suggested fix:
(bug15328.cnf' is ignored)

I think that it may be related to Bug#15328.
[14 Dec 2007 18:07] Sveta Smirnova
Thank you for the report.

I can not repeat described behavior. Please indicate accurate version of OS you use and provide your configure string.
[15 Dec 2007 6:40] Hiroshi Kise
Conditions are both following (1) and (2). 
===========================================================

(1)On RHEL5.0
# uname -svriopm
Linux 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux

# gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)

CFLAGS="-O3 -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing"
CXX=gcc
CXXFLAGS="-O3 -fno-strict-aliasing -felide-constructors -fno-exceptions \
-fno-rtti -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS"
export CFLAGS CXX CXXFLAGS

CONF_PARAM="--with-charset=utf8 --enable-assembler \
--with-mysqld-ldflags=-all-static --localstatedir=/data/mysql/data \
--without-readline"

./configure ${CONF_PARAM} --prefix=$TARGETDIR/mysql5051 \
--with-extra-charsets=all
===========================================================
(2)On RHEL5.0
# uname -svriopm
Linux 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux

# gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)
CFLAGS='-g'
CXX='gcc'
CXXFLAGS='-g'
export CFLAGS CXX CXXFLAGS

CONF_PARAM=" \
'--enable-local-infile' \
'--enable-assembler' \
'--with-pic' \
'--with-fast-mutexes' \
'--with-client-ldflags=-static' \
'--with-mysqld-ldflags=-static' \
'--with-zlib-dir=bundled' \
'--with-big-tables' \
'--with-yassl' \
'--with-readline' \
'--with-archive-storage-engine' \
'--with-blackhole-storage-engine' \
'--with-ndbcluster' \
'--with-csv-storage-engine' \
'--with-example-storage-engine' \
'--with-federated-storage-engine' \
'--with-innodb' \
'--with-extra-charsets=all'"

 ./configure ${CONF_PARAM} --prefix=$TARGETDIR/mysql5051
===========================================================
[2 Jul 2008 9:55] Alexander Nozdrin
Symptoms:
------------------------------------------------------------------------
mysqldump: Couldn't find table: "non_existing"
mysqldump: Got error: 1356: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when using LOCK TABLES
mysqldump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
mysqldump: user2 has insufficent privileges to SHOW CREATE PROCEDURE `sp1`!
--- /data0/pushbuild/pb/bzr_mysql-6.0-falcon/34/mysql-6.0.6-alpha-pb34/mysql-test/r/mysqldump.result	2008-07-01 19:20:50.000000000 +0300
+++ /data0/pushbuild/pb/bzr_mysql-6.0-falcon/34/mysql-6.0.6-alpha-pb34/mysql-test/r/mysqldump.reject	2008-07-01 20:46:50.000000000 +0300
@@ -13,12 +13,6 @@
 		<key Table="t1" Non_unique="1" Key_name="a" Seq_in_index="1" Column_name="a" Collation="A" Null="YES" Index_type="BTREE" Comment="" Index_Comment="" />
 	</table_structure>
 	<table_data name="t1">
-	<row>
-		<field name="a">1</field>
-	</row>
-	<row>
-		<field name="a">2</field>
-	</row>
 	</table_data>
 </database>
 </mysqldump>
@@ -35,7 +29,6 @@
   `a` decimal(64,20) DEFAULT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 SET character_set_client = @saved_cs_client;
-INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('987654321098765432109876543210987654321.00000000000000000000');
 DROP TABLE t1;
 #
 # Bug #2055
------------------------------------------------------------------------

https://intranet.mysql.com/secure/pushbuild/xref.pl?startdate=&enddate=&dir=&plat=&testtyp...
[11 Sep 2008 17:24] Matthias Leich
The failure observed by Alexander Nozdrin
- differs from the original bug report
- is covered by
  Bug#37938 Test "mysqldump" lacks various INSERT
            statements / values
  If
  1. the MyISAM feature "concurrent inserts"
     http://dev.mysql.com/doc/refman/6.0/en/concurrent-inserts.html
     is not switched off (startup default is ON)
     --> system variable CONCURRENT_INSERT
  2. a session A inserts records into a table T
  3. another session B runs a select on T just after the action
     of session A
  than it could happen that session B comes so early that it
  does not see all records inserted by session A.
[11 Sep 2008 19:24] Matthias Leich
The first report contains the reason for the difference
to the expected result:
-------------------------------------------------------
Warning: World-writable config file
'/tmp/MySQL/mysql-5.0.51/mysql-test/std_data/bug15328.cnf'
 is ignored

Experiment within a 5.1 release compiled from source:
ls -l std_data/bug15328.cnf
--> -rw-r--r-- 1 mleich users 44  4. Sep 18:54 std_data/bug15328.cnf
chmod a+w std_data/bug15328.cnf
Run mysqldump.test:
--> Warning: World-writable config file 'std_data/bug15328.cnf'
    is ignored between a lot of other messages and
    The line '--fields-optionally-enclosed-by="' is missing.
This fits exact to the bug report and two of the mysqldump Pushbuild
failures I found.

I was unable to find any source tree on bk-internal.mysql.com
with  'std_data/bug15328.cnf' World-writable.
The last Pushbuild failure of this kind was 2008-06-09.
Therefore I assume that the problem is fixed.
 
Open questions:
1. Does any of our current downloadable binary packages contain 
   World-writable files in std_data after standard installation?
2. Do we have any tools (not used for generation of downloadable
   binary packages) but somewhere described/recommended which
   generate packages?
[11 Sep 2008 20:17] Matthias Leich
I generated and installed a release like described
in the file INSTALL-SOURCE of a source tarball
(mysql-5.0.67) and the permissions are
cd /usr/local/mysql/mysql-test
ls -ld std_data/bug15328.cnf
-rw-r--r-- 1 root mysql 44 11. Sep 22:08 std_data/bug15328.cnf
= not Worldwide writable
[11 Sep 2008 20:54] Matthias Leich
Thank you for your bug report.

I was unable to reproduce the problem with MySQL
5.0.67 compiled from source and installed
into a separate place (/usr/local/mysql)
following the instructions in the file INSTALL-SOURCE.

Therefore I will set the bug to can't repeat.
Please check if the problem happens again with
a new version and inform us if the problem appears
again.

But I can confirm that we had around Dec. 2007 a
phase of necessary massive changes of
- data loading/exporting functionality and
- storage places (std_data) for data read/written
  during execution of tests stored in mysql-test. 
So I am not surprised - but of course not happy -
if some build type/script was in some small period
of time not so thorough tested and became the 
"victim" of our own new security features.

Best Regards

Matthias