[MDEV-9977] Crash when accessing large (>4G) InnoDB table on MariaDB 10.1.x 32-bit binaries Created: 2016-04-25 Updated: 2018-07-23 Resolved: 2018-01-08 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB, Storage Engine - XtraDB |
| Affects Version/s: | 10.1.10, 10.1.13 |
| Fix Version/s: | 10.0.25 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Valerii Kravchuk | Assignee: | Jan Lindström (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | innodb, regression | ||
| Environment: |
Windows OS, 64 bit, but using 32-bit Windows binaries from MariaDB |
||
| Issue Links: |
|
||||||||
| Sprint: | 10.1.14 | ||||||||
| Description |
|
I've installed32-bit Windows binaries of MariaDB 10.1.13 on my 64-bit Windows XP from this URL: http://mariadb.mirror.serveriai.lt//mariadb-10.1.13/win32-packages/mariadb-10.1.13-win32.msi Installation was without problems, I've used all defaults but 512M of buffer pool, my.ini is the following:
Then I've created InnoDB table tinno in the test database like this:
Note that latin1 character set was used by default. I've inserted one row into the table:
and then executed the following many times:
until the table .ibd file on disk became larger than 4G:
Then I checked that I can select some rows from the table (with select * from tinno limit 100 etc), can apply SHOW CREATE TABLE and SHOW TABLE STATUS - everything worked well. I shut the box down cleanly and then started it today and tried to execture the following:
Server crashed and this is what I had in the error log:
Same crash happened when I executed SHOW CREATE TABLE after restart:
According to other rteporters this happened with 10.1.10 as well, but never with older 5.5.x or 10.0.x and never with 64-bit MariaDB. |
| Comments |
| Comment by Valerii Kravchuk [ 2016-04-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Same crash is repeatable with the same steps (server restart is required) with 10.1.13 32-bit binaries on CentOS 6.7:
After creating the same table with 4G+ of data that worked OK:
I've restarted server and got similar warnings about doublewrite buffer pages upon startup and then:
In the error log I see:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Valerii Kravchuk [ 2016-04-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
No crash with 32-bit Percona Server 5.6.29-76.2 on the came CentOS 6.7 32-bit VM. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2016-04-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
commit ea83c1d7c61f6e267dfbbf01781cbbee7835ebe3 Problem was the fact that tablespace size was incorrectly | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Edward_K [ 2017-12-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, It looks like this is back again. I'm working with some tables in the 15-20GB range and the test instructions in this bug report reproduce the issue. 32-bit 10.2.x is affected? x64 is fine.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2018-01-01 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
reopen as per previous comment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2018-01-08 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've created a new bug report for it and copied the above comment there. Edward_K if you'd like to follow the progress, please, watch | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Dallas Clarke [ 2018-07-19 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've got the same problem. I was importing a very large database, I got tired of waiting, so I killed the console application that was doing the import, but this then seemed to have corrupted the database files. Now, every time I go near the database, even with something like "Drop Database <name>", the server just crashes. If anyone here can tell me how to safely delete the database without starting the server, or use a command line tool to recover the database, I'd be very grateful. 2018-07-19 21:35:53 2180 InnoDB: Assertion failure in thread 8576 in file fil0fil.cc line 5866 To report this bug, see https://mariadb.com/kb/en/reporting-bugs We will try our best to scrape up some info that will hopefully help Server version: 10.1.13-MariaDB Thread pointer: 0x0xa112310 Trying to get some variables. Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Dallas Clarke [ 2018-07-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Just as a note, I used innochecksum.exe application to identify the corrupted table. I then copied the <table>.idb and <table>.frm files from an un-corrupted database into the database directory. This then enabled the drop statement to work. |