[MDEV-17725] Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed in Diagnostics_area::set_ok_status upon ALTER failing due to error from engine Created: 2018-11-15 Updated: 2019-02-26 Resolved: 2019-02-26 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Data Definition - Alter Table, Server, Storage Engine - InnoDB |
| Affects Version/s: | 10.2, 10.3, 10.4 |
| Fix Version/s: | 10.2.23, 10.3.14, 10.4.4 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Elena Stepanova | Assignee: | Alexander Barkov |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | affects-tests | ||
| Description |
|
Non-debug build produces the error:
|
| Comments |
| Comment by Marko Mäkelä [ 2018-11-15 ] | |||||||||||
|
I do not think that the ORDER BY is even visible to InnoDB. If it were, in the ALGORITHM=INPLACE API, whenever the member functions return true to signal an error, they must have invoked my_error(). Here, I would guess that the error is somewhere else than in the use of the ALGORITHM=INPLACE API. It might even reproduce with ALGORITHM=COPY. | |||||||||||
| Comment by Elena Stepanova [ 2018-11-19 ] | |||||||||||
|
Raised to critical because it badly affects tests. | |||||||||||
| Comment by Alexander Barkov [ 2019-02-22 ] | |||||||||||
|
Introduced by this commit:
by this chunk:
| |||||||||||
| Comment by Alexander Barkov [ 2019-02-22 ] | |||||||||||
|
The problem is repeatable only when STRICT_ALL_TABLES is set:
If I remove STRICT_ALL_TABLES, it works fine:
I'm curious why this ALTER escalates the warning to error in strict mode. One of the possible options would be just to change the message to NOTE. | |||||||||||
| Comment by Alexander Barkov [ 2019-02-26 ] | |||||||||||
|
As agreed with serg, we'll suppress warning-to-error escalation for this message:
so this is always returned as a warning (not as an error) even if STRICT_ALL_TABLES is set. |