[MDEV-11093] FULLTEXT query crashes MariaDB 10.0.27 Created: 2016-10-20 Updated: 2016-11-17 Resolved: 2016-11-17 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Full-text Search, Storage Engine - InnoDB |
| Affects Version/s: | 10.0.27 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Critical |
| Reporter: | Southparkfan | Assignee: | Unassigned |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Environment: |
3GB OpenVZ VPS, 2.6.32-042stab094.8, Debian 8, MariaDB 10.0.27 as provided by Debian (10.0.27-MariaDB-0+deb8u1) |
||
| Description |
|
Two days ago, a user of our site executed a search that triggered this SQL query:
While that seems like a normal (FULLTEXT) query to me, MariaDB did not handle that properly and crashed:
We immediately tried to restart MariaDB, but without success, we think InnoDB data corruption occurred, thus we ended up restarting MariaDB with innodb-force-recovery = 6, dumping all our databases and importing them on a fresh MariaDB installation. https://github.com/MariaDB/server/blob/10.0/storage/innobase/fts/fts0que.cc#L3391 is the failing assertion. A "show create table" of searchindex:
The table is filled with 54k rows. |
| Comments |
| Comment by Elena Stepanova [ 2016-10-21 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It's doubtful that SELECT itself corrupted the data, it's more likely that it got corrupted before by something else, and it caused both the assertion failure and the following recovery problems. Could you please also paste the output of SHOW CREATE TABLE page, and attach the full error log (at least from the beginning of the session preceding the reported assertion failure, including the failure itself and the following restart which failed to happen), and your cnf files? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Southparkfan [ 2016-10-21 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, this is the page table:
Configuration (when it crashed):
Unfortunately, the log files were lost in a reinstall of the affected database server (a colleague actually asked us to create a backup of it, but it didn't happen). Also, noteworthy: I ran the query on our production db server and another db server, and it ran without errors in 9.10sec. I believe you are right about the corruption (and causing this), reproducing it seems impossible. I wonder when/how the corruption started, but the corrupted data is gone, so figuring that out will be a hard task. Thank you for your assistance. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2016-10-21 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes, that's why we needed the error log, it could have shown when the corruption occurred. It could be a previous crash, or a DDL that went very wrong, or something else. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Ian Gilfillan [ 2016-11-17 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Don't think there's much hope of this bug being resolved as is, the corruption was probably elsewhere, with no way to retrace. |