innodb_force_recovery and innodb_corrupt_table_action are ignored with corrupt BLOB page

Description

Hi everybody,

I ran into an interesting issue today. I have a corrupted BLOB page. I do not know how the page got corrupted. It happened with a partitioned table.

The page contained BLOB for 2 columns, e.g. in this example id's 5 and 6 are corrupt:
SELECT COUNT(id) FROM table WHERE date BETWEEN '2013-05-01' AND '2013-05-31' -> ok
SELECT COUNT(blob) FROM TABLE WHERE date BETWEEN '2013-05-01' AND '2013-05-31' -> crash
SELECT COUNT(blob) FROM TABLE WHERE date BETWEEN '2013-05-01' AND '2013-05-31' and id < 5 -> ok
SELECT COUNT(blob) FROM TABLE WHERE date BETWEEN '2013-05-01' AND '2013-05-31' and id = 5 -> crash
SELECT COUNT(blob) FROM TABLE WHERE date BETWEEN '2013-05-01' AND '2013-05-31' and id > 6 -> ok

One of the crashes is described in the first crash of the error log.

It would be convenient to repair the table if we set innodb_corrupt_table_action to 'salvage'. This did not change any crash behavior. I also tried to set innodb_crash_recovery to 1. This did not change the behavior either.

The second crash in the error log is with innodb_corrupt_table_action to 'salvage' and innodb_crash_recovery to 1.

Environment

None

Status

Assignee

Unassigned

Reporter

Michaël de Groot

Labels

External issue ID

None

External issue ID

None

Components

Affects versions

Priority

Major
Configure