Bug #38142 test case "innodb" fails in embedded mode with long path names
Submitted: 15 Jul 2008 16:03 Modified: 22 Aug 2008 16:06
Reporter: Daniel Fischer Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Embedded Library ( libmysqld ) Severity:S3 (Non-critical)
Version:5.1 OS:Any
Assigned to: CPU Architecture:Any

[15 Jul 2008 16:03] Daniel Fischer
Description:
The test case "innodb" fails in embedded mode when run in a location with a long path. Observed in Pushbuild on Solaris 10, but likely present on other platforms as well.

--- /export/home/pb2/test/sourcebuilder-build-271-1215816421.7/mysql-5.1.28-solaris10-i386-test/mysql-test/r/innodb.result	Fri Jul 11 22:42:26 2008
+++ /export/home/pb2/test/sourcebuilder-build-271-1215816421.7/mysql-5.1.28-solaris10-i386-test/mysql-test/r/innodb.reject	Sat Jul 12 06:11:22 2008
@@ -2664,7 +2664,7 @@
 create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
 create table t3(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=utf8;
 rename table t3 to t1;
-ERROR HY000: Error on rename of './test/t3' to './test/t1' (errno: 150)
+ERROR HY000: Error on rename of './test/t3' to './test
 set foreign_key_checks=1;
 drop table t2,t3;
 create table t1(a int primary key) row_format=redundant engine=innodb;
@@ -3134,7 +3134,7 @@
 INSERT INTO t2 VALUES (1);
 ALTER TABLE t2 ADD FOREIGN KEY (a) REFERENCES t1 (a) ON DELETE SET NULL;
 ALTER TABLE t2 MODIFY a INT NOT NULL;
-ERROR HY000: Error on rename of '#sql-temporary' to './test/t2' (errno: 150)
+ERROR HY000: Error on rename of '#sql-temporary' to './master-
 DELETE FROM t1;
 DROP TABLE t2,t1;
 CREATE TABLE t1 (a VARCHAR(5) COLLATE utf8_unicode_ci PRIMARY KEY)

How to repeat:
Build current 5.1 on Solaris 10 with Sun Studio 12:

$ ASFLAGS=-g
$ LDFLAGS=-g
$ CFLAGS='-g -Xa -xstrconst -mt -D_FORTEC_'
$ CXXFLAGS='-g -noex -mt -D_FORTEC_'
$ export CFLAGS
$ export CXXFLAGS
$ export ASFLAGS
$ export LDFLAGS
$ ./configure --enable-thread-safe-client --enable-local-infile --with-pic --with-client-ldflags=-static --with-mysqld-ldflags=-static --with-zlib-dir=bundled --without-ndb-debug --with-big-tables --with-ssl --with-readline --with-embedded-server --with-archive-storage-engine --with-blackhole-storage-engine --with-csv-storage-engine --with-example-storage-engine --with-federated-storage-engine --with-partition --with-extra-charsets=all --with-innodb --with-ndbcluster
$ make
$ scripts/make_binary_distribution

Create a location with a long path name:
$ cd /export/home # or some other place where you can write
$ mkdir `perl -e 'print "x"x100'`
$ cd xxxxx*
$ mv /path/to/bin/distribution .

Run the test case:
$ cd mysql-*
$ cd mysql-test
$ perl mysql-test-run.pl --embedded innodb
[15 Jul 2008 21:05] Sveta Smirnova
Thank you for the report.

Verified as described.
[22 Aug 2008 16:06] Daniel Fischer
Duplicate of bug#37995.