Bug #56659 Mismatch of CAPITAL vs small letters in "unified filelist" partitioning output
Submitted: 8 Sep 2010 16:04 Modified: 16 Nov 2010 14:03
Reporter: Joerg Bruehe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Partitions Severity:S3 (Non-critical)
Version:5.5.6-rc OS:Microsoft Windows
Assigned to: Mattias Jonsson CPU Architecture:Any
Triage: Triaged: D4 (Minor)

[8 Sep 2010 16:04] Joerg Bruehe
Description:
This failure happens in the build of 5.5.6-rc,
specific on Windows.

From my attempt to analyze the problem and to find my path through the convoluted include file hierarchy, the failing output is produced in file 
  mysql-test/suite/parts/inc/partition_layout_check1.inc

Here is just the start of the failure output:

=====
parts.partition_basic_innodb             [ retry-fail ]
        Test ended at YYYY-MM-DD HH:MM:SS

CURRENT_TEST: parts.partition_basic_innodb
--- /PATH/mysql-test/suite/parts/r/partition_basic_innodb.result
+++ /PATH/mysql-test/suite/parts/r/partition_basic_innodb.reject
@@ -77,8 +77,8 @@
 PARTITIONS 2 */

 unified filelist
-t1#P#p0.ibd
-t1#P#p1.ibd
+t1#p#p0.ibd
+t1#p#p1.ibd
 t1.frm
 t1.par

@@ -534,11 +534,11 @@
 PARTITIONS 5 */

 unified filelist
-t1#P#p0.ibd
-t1#P#p1.ibd
-t1#P#p2.ibd
-t1#P#p3.ibd
-t1#P#p4.ibd
+t1#p#p0.ibd
+t1#p#p1.ibd
+t1#p#p2.ibd
+t1#p#p3.ibd
+t1#p#p4.ibd
 t1.frm
 t1.par

...
=====

This goes on and on, 1318 lines in total, always with a 'P' vs 'p' difference.

How to repeat:
Run the partition suite on Windows.
[15 Sep 2010 8:24] 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/118277

3207 Mattias Jonsson	2010-09-15
      Bug#56659: Mismatch of CAPITAL vs small letters in "unified filelist" partitioning output
      Bug#56657: Test still uses "--exec rm -f ..." which is non-portable
      Bug#56601: Test uses Unix path for temporary file, fails, and writes misleading message
      
      Several tests that was written in a non portable way (failed on windows)
      
      Fixed by
      1) backporting the fix for replace_result to also apply to list_files
      (mysqltest from mysql-trunk)
      2) replacing all #p#/#sp#/#tmp# to #P#/#SP#/#TMP#/
      (innodb always converts filenames to lower case in windows).
      3) replacing '--exec rm -f' with '--remove_files_wildcard'
      4) replacing a perl snippet with '--write_file'
     @ client/mysqltest.cc
        backport from mysql-trunk to allow replace_result to apply
        also on list_files
     @ mysql-test/suite/parts/inc/partition_check_drop.inc
        Compensate for differences between innodb on windows vs unix.
        Using mysqltest command, instead of unix command to remove files.
     @ mysql-test/suite/parts/inc/partition_crash.inc
        compensate for differences between innodb on windows vs unix
     @ mysql-test/suite/parts/inc/partition_fail.inc
        compensate for differences between innodb on windows vs unix
     @ mysql-test/suite/parts/inc/partition_layout.inc
        compensate for differences between innodb on windows vs unix
     @ mysql-test/suite/parts/inc/partition_layout_check1.inc
        compensate for differences between innodb on windows vs unix
     @ mysql-test/suite/parts/inc/partition_layout_check2.inc
        compensate for differences between innodb on windows vs unix
     @ mysql-test/suite/parts/r/partition_recover_myisam.result
        updated result
     @ mysql-test/suite/parts/r/partition_special_myisam.result
        updated result
     @ mysql-test/suite/parts/t/part_supported_sql_func_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_alter1_1_2_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_alter1_2_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_alter2_1_1_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_alter2_1_2_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_alter2_2_2_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_alter4_innodb.test
        Test takes very long time, require --big flag
     @ mysql-test/suite/parts/t/partition_debug_sync_innodb.test
        compensate for differences between innodb on windows vs unix
     @ mysql-test/suite/parts/t/partition_recover_myisam.test
        more generic suppression (failed in windows)
     @ mysql-test/suite/parts/t/partition_special_myisam.test
        Using portable mysqltest command 'write_file' instead of perl snippet.
[21 Sep 2010 10:37] Joerg Bruehe
See review comment in bug#56601, it is all one big changeset.
[22 Sep 2010 14:15] John Embretsen
Review comments:

Patch looks good to me, in general. I have applied it cleanly to current
mysql-5.5-bugfixing (but I have not run tests on Windows). 
I approve the patch under the assumption that the following will be done:

 - Check and comment Bug#45299, update experimental file.
 - Add line to default.weekly file making sure the big tests will run
   on a weekly basis when possible in Pushbuild.

Details:

The test parts.partition_alter4_innodb is marked as experimental (see 
collections/default.experimental) due to Bug#45299 (test times out). 
With the current patch the test is specified to be "big", so it will not
run (and time out) by default, which means it can be removed from the
experimental file.

Please update default.experimental and check if Bug#45299 can be closed or 
if there may be an actual performance regression as well. In any case add 
a comment to Bug#45299 saying the test has been made "big" and no longer 
marked as experimental.

In order to maintain test coverage even if tests are made "big", please add
a line to collections/default.weekly specifying to run at least the big
tests with some suitable timeouts (--suite-timeout and --testcase-timeout),
and the --big-test flag, taking into account slow Pushbuild machines.

This will make the big tests run on a weekly basis wherever that is set up
(currently only mysql-next-mr aka. weekly-next-mr in Pushbuild) if no other 
collections file is used.

Data point for future reference: Mattias said on IRC (#dev) 2010-09-22:

-----
(13:47:07) mattiasj: johnemb: I tried to making them smaller before, but 
then I was told to not remove tests, so I just splitted them before, but I 
cannot see why it should be run at every push, weekly is just OK with me
-----

If one could distinguish "big" tests from other tests by name it would be 
easy to run just the big tests, but since that does not seem to be the case
one might as well just run the entire "default" test suite. I leave it to
you to decide whether to do this or just run the "parts" suite, for now.
Server QA may re-visit this decision later.

I suggest also adding --comment=big-tests or something like that to the MTR
command line in the .weekly file so that people will know that big tests 
are included when looking at Pushbuild web results.

Note that the test comments in the patch mention "run it with the 
--big mtr-flag", although the official documented mtr-flag is --big-test. 
It turns out that --big works as well, so I'll accept it.
[24 Sep 2010 9:43] 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/119014

3208 Mattias Jonsson	2010-09-24
      Bug#56659: Mismatch of CAPITAL vs small letters in "unified filelist" partitioning output
      Update to previous patch according to reviewers comments.
      
      Removing parts.partition_alter4_innodb from default.experimental
      (Also closed bug#45299 as a duplicate of bug#56659 as a result of this.)
      Adding run of tests requiring --big-test flag to default.weekly to keep the coverage.
     @ mysql-test/collections/default.experimental
        Removed partition_alter4_innodb since it now requires --big-test flag to run
        since it is very time consuming.
     @ mysql-test/collections/default.weekly
        Added run of test that require --big-test flag, to be run on weekly basis.
[24 Sep 2010 14:46] John Embretsen
Latest patch update approved. I tested the MTR command line from the weekly collections file, and all tests passed on my test boxes (except ndb tests, which were skipped).
[1 Oct 2010 19:49] Mattias Jonsson
Pushed into mysql-5.5-bugteam and mysql-trunk-merge
[4 Oct 2010 13:02] Jon Stephens
Still waiting for merge to 5.5 mailine tree, set NM status.
[9 Nov 2010 19:47] Bugs System
Pushed into mysql-5.5 5.5.7-rc (revid:sunanda.menon@sun.com-20101109182959-otkxq8vo2dcd13la) (version source revid:sunanda.menon@sun.com-20101109182959-otkxq8vo2dcd13la) (merge vers: 5.5.7-rc) (pib:21)
[13 Nov 2010 16:08] Bugs System
Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:alexander.nozdrin@oracle.com-20101113152450-2zzcm50e7i4j35v7) (merge vers: 5.6.1-m4) (pib:21)
[13 Nov 2010 16:39] Bugs System
Pushed into mysql-next-mr (revid:alexander.nozdrin@oracle.com-20101113160336-atmtmfb3mzm4pz4i) (version source revid:vasil.dimov@oracle.com-20100629074804-359l9m9gniauxr94) (pib:21)
[16 Nov 2010 14:03] Jon Stephens
This appears to impact testing only; no changelog entry needed. 

Closed.