[MDEV-12600] crash during install_db with innodb_page_size=32K and ibdata1=3M; Created: 2017-04-27 Updated: 2017-08-11 Resolved: 2017-07-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB, Storage Engine - XtraDB |
| Affects Version/s: | 10.1.22 |
| Fix Version/s: | 10.1.25, 10.2.7 |
| Type: | Bug | Priority: | Major |
| Reporter: | Andrii Nikitin (Inactive) | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Description |
|
May be related to I am not getting stack resolved - let me know if this is required to troubleshoot:
https://travis-ci.org/AndriiNikitin/mariadb-environs-MDEV-12113/builds/226281024 Only these configurations do show crash:
the rest pass:
10.2 reports an (expected) error that 3Mb is too small :
|
| Comments |
| Comment by Andrii Nikitin (Inactive) [ 2017-04-27 ] | ||||||||||||||||||||||||||||||
|
After all it looks that several more jobs at the link actually had crash, just mysql_install_db did report 'success', so job marked as green. | ||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2017-05-01 ] | ||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-05-28 ] | ||||||||||||||||||||||||||||||
|
Includes the two other related fixes as you can't test this without fixing the first two first. https://github.com/MariaDB/server/tree/bb-10.1-MDEV-12113 Manual testing (see attached output). | ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-06-02 ] | ||||||||||||||||||||||||||||||
|
Problem was that all doublewrite buffer pages must fit to first Ported commit 27a34df7882b1f8ed283f22bf83e8bfc523cbfde BUG#21551464 - SEGFAULT WHILE INITIALIZING DATABASE WHEN To 10.1 (with extended error printout). btr_create(): If ibuf header page allocation fails report error and dict_build_table_def_step: If fsp_header_init fails return fsp_header_init: returns true if header initialization succeeds fseg_create_general: report error if segment or page allocation fails. innobase_init: If first datafile is smaller than 3M and could not row_truncate_table_for_mysql: report error if fsp header init srv_init_abort: New function to report database initialization errors. srv_undo_tablespaces_init, innobase_start_or_create_for_mysql: If trx_rseg_create: If segment header creation fails return. | ||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2017-06-06 ] | ||||||||||||||||||||||||||||||
|
I think that more work is needed. The check was added at a too high level. | ||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2017-06-06 ] | ||||||||||||||||||||||||||||||
|
I pushed a revision to bb-10.1-marko and merged to bb-10.2-marko. In the merge, I removed a similar too-high-level check from SysTablespace::check_file_spec(), now that buf_dblwr_create() does a more accurate check. I am not sure if it is because of
The 352 pages is correct, and the first data file indeed is of wrong size. Sometimes (with different sizes for ibdata1 specified, and with different page size) the first file can even be bigger than specified. I had trouble debugging this. How can I get to debug the bootstrap with innodb_page_size=32k? The initial bootstrap seemed to take place with the default innodb_page_size=16k. | ||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2017-06-07 ] | ||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-06-08 ] | ||||||||||||||||||||||||||||||
|
ok to push. |