The issue was that we sent two different signals to different threads
after each other. The DEBUG_SYNC functionality cannot handle this (as
the signal is stored in a global variable) and the first one can get
lost.
Fixed by using the same signal for both threads.
When acquiring SNW/SNRW/X MDL lock DDL/admin statements may abort pending
thr lock in concurrent connection with open HANDLER (or delayed insert
thread).
This may lead to a race condition when table->alias is accessed
concurrently by such threads. Either assertion failure or memory leak
is a practical consequence of this race condition.
Specifically HANDLER is opening a table and issuing alias.copy(), while
DDL executing get_lock_data()/alias.c_ptr()/realloc()/realloc_raw().
Fixed by perforimg table->init() before it is published via
thd->open_tables.
Added new tests and corrected existing tests
mysql-test/suite/stress/include/ddl3.inc:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Had to change CREATE TABLE statements to include NOT NULL due to CSV engine constraints
mysql-test/suite/stress/r/ddl_archive.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Reproduced .result files due to changes in ddl3.inc
mysql-test/suite/stress/r/ddl_csv.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Reproduced .result files due to changes in ddl3.inc
mysql-test/suite/stress/r/ddl_innodb.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Reproduced .result files due to changes in ddl3.inc
mysql-test/suite/stress/r/ddl_memory.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Reproduced .result files due to changes in ddl3.inc
mysql-test/suite/stress/r/ddl_myisam.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Reproduced .result files due to changes in ddl3.inc
mysql-test/suite/stress/r/ddl_ndb.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Reproduced .result files due to changes in ddl3.inc
BitKeeper/etc/ignore:
Added mysql-test/.DS_Store .DS_Store to the ignore list
mysql-test/t/disabled.def:
Disabled new test - csv_alter_table.test file due to Bug#33696.
Cannot generate a .result file due to the Bug. These tests can be enabled to test the bug fix without needing new tests unless the developer feels the need to add more.
mysql-test/r/csv_not_null.result:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
mysql-test/t/csv_alter_table.test:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support
Designed to test fixes for Bug#33696 - CSV Engine allows nullable columns via ALTER TABLE statements
mysql-test/t/csv_not_null.test:
New tests added for Bug#33558 - Test "stress.ddl_csv needs nullable columns which CSV does not support