Bug #54845 main.lowercase_table3 on Mac OSX
Submitted: 28 Jun 2010 6:06 Modified: 3 Nov 2014 15:17
Reporter: Alexander Nozdrin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Options Severity:S1 (Critical)
Version:M3 (Celosia), M4 (Dahlia) OS:MacOS
Assigned to: CPU Architecture:Any
Tags: disabled, pb2, regression, test failure

[28 Jun 2010 6:06] Alexander Nozdrin
Description:
main.lowercase_table2 started to fail on Mac OSX some time ago.

Symptoms:
------------------------------------------------------------
main.lowercase_table3                    [ fail ]
        Test ended at 2010-06-24 12:55:01

CURRENT_TEST: main.lowercase_table3
mysqltest: At line 22: query 'SELECT * FROM T1' failed: 1146: Table 'test.T1' doesn't exist
------------------------------------------------------------

How to repeat:
Check out PB.
[28 Jun 2010 6:10] Alexander Nozdrin
This bug report is about main.lowercase_table*3*

Sorry for the confusion.
[28 Jun 2010 7:34] Valeriy Kravchuk
Verified just as described:

valeriy-kravchuks-macbook-pro:mysql-test openxs$ ./mtr main.lowercase_table3
Logging: ./mtr  main.lowercase_table3
100628 10:33:18 [Warning] Setting lower_case_table_names=2 because file system for /var/folders/dX/dXCzvuSlHX4Op1g-o1jIWk+++TI/-Tmp-/hL1Ynk46q6/ is case insensitive
100628 10:33:18 [Note] Buffered information: Performance schema disabled (reason: start parameters).

100628 10:33:18 [Note] Plugin 'FEDERATED' is disabled.
100628 10:33:18 [Note] Plugin 'ndbcluster' is disabled.
MySQL Version 5.5.6
Checking supported features...
 - using ndbcluster when necessary, mysqld supports it
 - SSL connections supported
 - binaries are debug compiled
Collecting tests...
vardir: /Users/openxs/dbs/trunk/mysql-test/var
Checking leftover processes...
Removing old var directory...
Creating var directory '/Users/openxs/dbs/trunk/mysql-test/var'...
Installing system database...
Using server port 63025

==============================================================================

TEST                                      RESULT   TIME (ms)
------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
main.lowercase_table3                    [ fail ]
        Test ended at 2010-06-28 10:33:31

CURRENT_TEST: main.lowercase_table3
mysqltest: At line 22: query 'SELECT * FROM T1' failed: 1146: Table 'test.T1' doesn't exist

The result from queries just before the failure was:
call mtr.add_suppression("Cannot find or open table test/BUG29839 from");
DROP TABLE IF EXISTS t1,T1;
CREATE TABLE t1 (a INT);

 - saving '/Users/openxs/dbs/trunk/mysql-test/var/log/main.lowercase_table3/' to '/Users/openxs/dbs/trunk/mysql-test/var/log/main.lowercase_table3/'
------------------------------------------------------------
The servers were restarted 0 times
Spent 0.000 of 13 seconds executing testcases

Completed: Failed 1/1 tests, 0.00% were successful.

Failing test(s): main.lowercase_table3
[30 Jun 2010 0:40] Omer Barnir
triage: Not sure how long it is failing as was experimental in PB2 - assumed to be a test issue regarding the table name case  3132 - SR55TEST
[30 Jun 2010 9:28] Alexander Nozdrin
The test case has been disabled due to this bug.
[2 Aug 2010 6:44] Anitha Gopi
The intent of the test is to validate case insensitive file systems. i.e t1 and T1 is the same on systems where lower_case_file_system is ON. The test runs only on systems where this flag is set

--source include/have_case_insensitive_file_system.

cat include/have_case_insensitive_file_system.inc
--require r/case_insensitive_file_system.require
--disable_query_log
show variables like "lower_case_file_system";
--enable_query_log

cat  r/case_insensitive_file_system.require
Variable_name	Value
lower_case_file_system	ON

The test creates a table t1 and then tries to access it using name T1. This should work for case insensitive file systems

#
# This is actually an error, but ok as the user has forced this
# by using --lower-case-table-names=0
CREATE TABLE t1 (a INT);
SELECT * FROM T1;
FLUSH TABLES;
DROP TABLE t1;

The above does not seem to work in the mac.
[2 Aug 2010 8:15] Anitha Gopi
The test uses a combination of 
lower_case_table_names	0
lower_case_file_system	ON

lower_case_table_names 0 means table names are case sensitive. But the case sensitivity of the file system takes over as described in Bug 20356. This seems to be broken. Re assigning to product
[2 Aug 2010 8:27] Anitha Gopi
MySQL manual  needs more information on these variables
1. There should be more detailed explanation on the impact of different values for lower_case_table_names on a case insensitive file system
2. Should mention that lower_case_file_system is a read only variable

It would also help to extend tests to cover more use cases. eg: different values for lower_case_table_names. Probably covered by some of the other table* tests.
[3 Nov 2014 15:17] Paul DuBois
Fixed in 5.7.6. Changes for test suite. No changelog entry needed.