[MDEV-17726] Assertion `sqlcom != SQLCOM_TRUNCATE' failed in ha_innobase::delete_table after truncating temporary table Created: 2018-11-15 Updated: 2018-11-19 Resolved: 2018-11-15 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.4.0, 10.2.19 |
| Fix Version/s: | 10.3.11, 10.4.1, 10.2.20 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Elena Stepanova | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
That's the end of the error log, and coredump is not produced. It fails for me pretty much every time, maybe one or two misses from dozens of attempts. The test can be run as is, it can also be run with --nocheck-testcases, but --nowarnings makes a difference – with it, the failure is not reproducible. However, trying to imitate warnings activity within the test itself doesn't work. |
| Comments |
| Comment by Marko Mäkelä [ 2018-11-15 ] | ||||||||||||||||||||||||||||||||||||
|
I got a core dump by adding a loop inside the test:
The fix seems to be simple, and the assertion failure ought to affect debug builds only. The sqlcom parameter only affects the treatment of FOREIGN KEY constraints, and they do not exist for temporary tables. There already was a work-around for this problem, but apparently thd_killed() does not hold here.
A possible fix is to set sqlcom in the calling function:
An alternative ought to be to ensure that thd_killed(ha_thd()) holds when the temporary tables are being dropped during client disconnection. |