[MDEV-13626] Merge InnoDB test cases from MySQL 5.7 Created: 2017-08-23 Updated: 2024-01-03 Resolved: 2023-11-08 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Tests |
| Fix Version/s: | 10.4.33, 10.5.24, 10.6.17, 10.11.7, 11.0.5, 11.1.4, 11.2.3, 11.3.2 |
| Type: | Task | Priority: | Major |
| Reporter: | Marko Mäkelä | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | compat57 | ||
| Attachments: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sub-Tasks: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
Until There are some behaviour changes in MariaDB that need to be taken into account. Most notably:
That said, we must ensure that all applicable test cases from the following MySQL 5.7 tests are present in MariaDB 10.0:
All the affected tests should be documented in this ticket in detail (especially those that are already covered by other MariaDB tests). |
| Comments |
| Comment by Marko Mäkelä [ 2017-09-08 ] | ||||||||||||||||||||||||||||
|
I imported the test innodb.alter_crash. | ||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2017-09-14 ] | ||||||||||||||||||||||||||||
|
I imported the changes to innodb.innodb-index and innodb.innodb-index-debug. | ||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-10-25 ] | ||||||||||||||||||||||||||||
|
commit a6a4c25bf7d943ff5a429fbf32fe04fdaca25b16 MariaDB adjustments to innodb_gis tests. Some test are still disabled as they provide different results, Fixes also commit 42e3e574260dc6ccfe161f8c0d8e8af41e599353 Add missing innodb_gis tests. | ||||||||||||||||||||||||||||
| Comment by Alice Sherepa [ 2017-10-30 ] | ||||||||||||||||||||||||||||
|
Jan Lindström, please take a look on this test, what is the correct result her/
| ||||||||||||||||||||||||||||
| Comment by Alice Sherepa [ 2017-10-30 ] | ||||||||||||||||||||||||||||
|
innodb_gis.gis_split_nan needed 4k size page on options, as --source include/have_innodb_4k.inc just checks if it is not 4k, then skip test. Now it fails with error 1416: Cannot get geometry object from data you send to the GEOMETRY field https://github.com/MariaDB/server/blob/mdev-13626/mysql-test/suite/innodb_gis/t/gis_split_nan.test
| ||||||||||||||||||||||||||||
| Comment by Alice Sherepa [ 2017-11-02 ] | ||||||||||||||||||||||||||||
|
please check if result is correct/ test is here https://github.com/MariaDB/server/blob/mdev-13626/mysql-test/suite/innodb_fts/t/sync.test
| ||||||||||||||||||||||||||||
| Comment by Alice Sherepa [ 2017-11-02 ] | ||||||||||||||||||||||||||||
|
also problem in MATCH AGAINST IN BOOLEAN MODE --https://github.com/MariaDB/server/blob/mdev-13626/mysql-test/suite/innodb_fts/t/opt.test
| ||||||||||||||||||||||||||||
| Comment by Alice Sherepa [ 2017-11-15 ] | ||||||||||||||||||||||||||||
|
please see attached file force-restart.task, it lists tests, which had option --force-restart, that our mtr does not support. | ||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2018-10-25 ] | ||||||||||||||||||||||||||||
|
The file mysql-test/suite/innodb/t/cascade_lock_wait.test became useless in 5.7 after the needed DBUG_EXECUTE_IF was removed. | ||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2019-06-20 ] | ||||||||||||||||||||||||||||
|
Resuming work on this. innodb.innodb_buffer_pool_dump_pct needed adjustment for MDEV-11454. | ||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2019-07-02 ] | ||||||||||||||||||||||||||||
|
I will not import two tests for temporary tables:
Both tests expect ROW_FORMAT=COMPRESSED to be available for temporary tables. This is intentionally not supported by MariaDB due to the increased memory and processing overhead. | ||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2019-07-02 ] | ||||||||||||||||||||||||||||
|
The test innodb.blob-crash needs some code changes, to replace DBUG_SUICIDE with DEBUG_SYNC and external killing. | ||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2023-11-03 ] | ||||||||||||||||||||||||||||
|
The test innodb.iodku was added in a fix of Bug #25966845 INSERT ON DUPLICATE KEY GENERATE A DEADLOCK. As I had noted in
The MySQL fix ensures that statement-level replication for INSERT…ON DUPLICATE KEY UPDATE works without causing an increased amount of deadlocks. The MariaDB fix will simply mark such statements unsafe for statement-level replication, so that they will be deterministically replicated using row-level events. The MySQL fix avoids deadlocks by registering next-key (gap) locks on a partial rollback, that is, by escalating to coarser locking. That is why the "Test 6" and "Test 7" sections in the test result in a lock wait timeout in MySQL 5.7 but not MariaDB. While I was discussing this with vlad.lesin, I pointed out that by design, InnoDB allows a transaction to modify a record that was committed by a later-started transaction. I verified that a lock wait timeout would be reported by MariaDB if both transactions were using the SERIALIZABLE isolation level. | ||||||||||||||||||||||||||||
| Comment by Vladislav Lesin [ 2023-11-07 ] | ||||||||||||||||||||||||||||
|
I would also add to the comment that MySQL fix sets implicit lock on just-inserted clustered index record during IODKU execution. The lock is converted to explicit one during partial rollback. Then the lock is inherited to a gap lock when just inserted record is deleted on partial rollback. Such a way the gap should be locked in clustered index, and, as any IODKU statement inserts a record to clustered index before secondary indexes duplicates check, any other transaction which executes IODKU will be blocked on "INSERT" stage. I think it explains the reason of implicit to explicit lock conversion in the fix. |