Bug #34225 test suite parts uses /tmp-dir instead of mysql-test dir, which causes failures
Submitted: 1 Feb 2008 13:28 Modified: 27 Mar 2008 19:32
Reporter: Mattias Jonsson Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Partitions Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: Mattias Jonsson CPU Architecture:Any

[1 Feb 2008 13:28] Mattias Jonsson
Description:
test suit parts uses /tmp-dir instead of mysql-test dir, which causes failures

see extract from https://intranet.mysql.com/secure/pushbuild/getlog.pl?dir=mysql-5.1-engines&entry=svojtovi...

parts.partition_bit_myisam     [ fail ]

mysqltest: In included file "./suite/parts/inc/partition_bit.inc": At line 24: query 'create table t1 (a bit(0), primary key (a)) engine=$engine 
partition by key (a) (
partition pa1 $data_directory $index_directory,
partition pa2 $data_directory $index_directory)' failed: 1: Can't create/write to file '/tmp/t1#P#pa1.MYI' (Errcode: 17)

How to repeat:
create file '/tmp/t1#P#pa1.MYI' and then run the test...

Suggested fix:
use $MYSQL_TMP_DIR instead of /tmp
[4 Feb 2008 11:43] Mattias Jonsson
Changing the use of /tmp to $MYSQL_TMP_DIR (and "-- replace_result $MYSQL_TMP_DIR /tmp"
[4 Feb 2008 13:34] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/41642

ChangeSet@1.2518, 2008-02-04 14:34:34+01:00, mattiasj@client-10-129-10-147.upp.off.mysql.com +26 -0
  Bug#34225: test suit parts uses /tmp-dir
  
  Since it used /tmp-dir, it continues to fail on the same server
  until the /tmp-dir is cleaned.
  
  Solution:
  changed /tmp to $MYSQL_TMP_DIR in DATA/INDEX DIR
  and added --replace_result $MYSQL_TMP_DIR /tmp
[5 Feb 2008 10:59] Ingo Strüwing
Approved with change request. Please see email reply to the commit email.
[5 Feb 2008 14:17] Mattias Jonsson
I found that it uses the DATA/INDEX DIRECTORY without "--source include/have_symlink.inc" which will break on some configurations.

I will make a new patch where I have moved out the test for DATA/INDEX DIRECTORY from partition_basic.inc to partition_basic_symlink.inc and removed all use of this in all other tests.
(It will only exists in partition_basic_symlink_innodb.test, partition_basic_symlink_myisam.test, partition_basic_symlink.inc and partition_methods1.inc after the new patch)
[5 Feb 2008 15:01] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/41713

ChangeSet@1.2518, 2008-02-05 16:00:59+01:00, mattiasj@witty. +49 -0
  Bug#34225: test suit parts uses /tmp-dir
  
  Since it used /tmp-dir, it continues to fail on the same server
  until the /tmp-dir is cleaned. (Another problem was that it
  uses DATA/INDEX DIR without checking for symlink, which is needed)
  
  
  Solution:
  Moved all DATA/INDEX DIR test to a new partition_basic_symlink.inc file
  and use this for myisam and innodb, also requiring symlinks and
  not_windows.
  (i.e. removed DATA/INDEX DIR use from several tests)
[6 Feb 2008 14:14] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/41782

ChangeSet@1.2518, 2008-02-06 15:13:56+01:00, mattiasj@witty. +49 -0
  Bug#34225: test suit parts uses /tmp-dir
  
  Since it used /tmp-dir, it continues to fail on the same server
  until the /tmp-dir is cleaned. (Another problem was that it
  uses DATA/INDEX DIR without checking for symlink, which is needed)
  
  
  Solution:
  Moved all DATA/INDEX DIR test to a new partition_basic_symlink.inc file
  and use this for myisam and innodb, also requiring symlinks and
  not_windows.
  (i.e. removed DATA/INDEX DIR use from several tests)
[7 Feb 2008 15:26] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/41871

ChangeSet@1.2521, 2008-02-07 16:26:22+01:00, mattiasj@witty.ndb.mysql.com +3 -0
  Bug#34225: suite/parts test failure
  
  Pre push fix:
  added --sorted_result for consistent results
[7 Feb 2008 18:44] Mattias Jonsson
Pushed into mysql-6.0-engines and mysql-5.1-engines
[8 Feb 2008 10:52] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/41922

ChangeSet@1.2519, 2008-02-08 11:52:24+01:00, mattiasj@client-10-129-10-147.upp.off.mysql.com +2 -0
  Bug#34225: suite/parts test failure
  
  post push patch.
  Missed to remove dependency of symlink when I reorganized the tests
[20 Feb 2008 11:13] Magnus Blåudd
Some small comments:

1.We now have mkdir builtin to mysqltest, please use it!
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
--mkdir $MYSQLTEST_VARDIR/master-data/test/data

2. You don't need to send the result via the server to concatenate
strings, the below works just as fine.

A.
eval SET @data_dir = 'DATA DIRECTORY =
 ''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
echo $data_directory;

B.
let $new_data_dir= ''$MYSQLTEST_VARDIR/master-data/test/data'';
echo $new_data_dir;
[27 Mar 2008 11:18] Bugs System
Pushed into 5.1.24-rc
[27 Mar 2008 17:50] Bugs System
Pushed into 6.0.5-alpha
[27 Mar 2008 19:32] Paul DuBois
Test suite change. No changelog entry needed.