Bug #52746 innodb purge thread crashed with table containing prefix indexed blobs

Submitted: 11 Apr 2010 17:47 Modified: 20 Jun 2010 17:34
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB Plugin storage engine Severity:S1 (Critical)
Version:5.1.45 + 1.0.6 plugin, 5.1.47 + 1.0.7 plugin OS:Any
Assigned to: Marko Mäkelä CPU Architecture:Any

[11 Apr 2010 17:47] Shane Bester
Description:
Version: '5.1.45-enterprise-gpl-advanced-debug'  socket: ''  port: 3306  MySQL Enterprise Server - Advanced Edition Debug (GPL)
100411 19:45:32  InnoDB: Assertion failure in thread 3332 in file .\trx\trx0rec.c line 1081
InnoDB: Failing assertion: ignore_prefix || !col->ord_part || dfield_get_len(dfield) >= REC_MAX_INDEX_COL_LEN + BTR_EXTERN_FIELD_REF_SIZE
InnoDB: We intentionally generate a memory trap.

ha_innodb_plugin.dll!trx_undo_rec_get_partial_row  Line 1081
ha_innodb_plugin.dll!row_purge_parse_undo_rec Line 585
ha_innodb_plugin.dll!row_purge Line 629
ha_innodb_plugin.dll!row_purge_step Line 684
ha_innodb_plugin.dll!que_thr_step Line 1248
ha_innodb_plugin.dll!que_run_threads_low Line 1311
ha_innodb_plugin.dll!que_run_threads Line 1350
ha_innodb_plugin.dll!trx_purge()  Line 1179
ha_innodb_plugin.dll!srv_master_thread Line 2517

How to repeat:
no testcase yet.
[11 Apr 2010 18:09] Shane Bester
start server with --innodb-file-per-table --innodb-file-format=barracuda, import this sql and wait for purge thread to run

Attachment: bug52746.sql.bz2 (application/octet-stream, text), 103.76 KiB.

[11 Apr 2010 18:50] Valeriy Kravchuk
Verified just as described with recent 5.1.47 + plugin 1.0.7 on Mac OS X:

...
100411 21:47:49 InnoDB Plugin 1.0.7 started; log sequence number 231734120
100411 21:47:49 [Note] Event Scheduler: Loaded 0 events
100411 21:47:49 [Note] /Users/openxs/dbs/5.1/libexec/mysqld: ready for connections.
Version: '5.1.47-debug'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
100411 21:47:50  InnoDB: Assertion failure in thread 2960240640 in file trx/trx0rec.c line 1082
InnoDB: Failing assertion: ignore_prefix || !col->ord_part || dfield_get_len(dfield) >= REC_MAX_INDEX_COL_LEN + BTR_EXTERN_FIELD_REF_SIZE
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
InnoDB: about forcing recovery.
100411 21:47:50 - mysqld got signal 6 ;
...
[13 Apr 2010 12:19] Marko Mäkelä
The assertion fails to account for ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED, which can be as small as 2 * BTR_EXTERN_FIELD_REF_SIZE.  I will review the code for similar assertions.
[5 May 2010 15:18] Bugs System
Pushed into 5.1.47 (revid:joro@sun.com-20100505145753-ivlt4hclbrjy8eye) (version source revid:kristofer.pettersson@sun.com-20100503172109-f9hracq5pqsaomb1) (merge vers: 5.1.47) (pib:16)
[10 May 2010 6:13] Marko Mäkelä
Suggested description of this bug for the manual: "A too strict assertion could fail during the purge of delete-marked records in DYNAMIC or COMPRESSED tables that contain column prefix indexes." This was fixed by relaxing the assertion.
[12 May 2010 19:14] Paul DuBois
Noted in 5.1.47 changelog.
[28 May 2010 5:57] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:alik@sun.com-20100512070920-xgpmqeytp0gc183c) (pib:16)
[28 May 2010 6:25] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:alik@sun.com-20100507093037-7cykrx1n73v0tetc) (merge vers: 6.0.14-alpha) (pib:16)
[28 May 2010 6:53] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:alexey.kopytov@sun.com-20100507164602-8w09samq3mpvbxbn) (merge vers: 5.5.5-m3) (pib:16)
[30 May 2010 0:05] Paul DuBois
Noted in 5.5.5, 6.0.14 changelogs.
[17 Jun 2010 11:59] Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:martin.skold@mysql.com-20100616204905-jxjg342w35ks9vfy) (merge vers: 5.1.47-ndb-7.0.16) (pib:16)
[17 Jun 2010 12:39] Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:martin.skold@mysql.com-20100615090726-jotpykke96le59w5) (merge vers: 5.1.47-ndb-6.2.19) (pib:16)
[17 Jun 2010 13:25] Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:martin.skold@mysql.com-20100616120453-jh7wr05z1vf7r8pm) (merge vers: 5.1.47-ndb-6.3.35) (pib:16)

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.070 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.