[MDEV-13284] mariadb-server: fil_load_single_table_tablespace(): mysqld killed by SIGABRT Created: 2017-07-10 Updated: 2018-02-06 Resolved: 2018-01-30 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB, Storage Engine - XtraDB |
| Affects Version/s: | 10.1.21, 10.1.22, 10.1.23, 10.1.24 |
| Fix Version/s: | 10.2.2, 10.3.0 |
| Type: | Bug | Priority: | Major |
| Reporter: | Michal Schorm | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Fedora 24, 25 |
||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Description |
|
Hello, I got here following issue: For both I have cool retrace informations like this, URLs can be found right before 1st comment in the bugzillas. On one hand, the workaround could be easy - disable the problematic plugin by deafult. |
| Comments |
| Comment by Sergei Golubchik [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
mschorm, I'm getting "Access denied" for them. Could you post the information here or at least make sure we can see these issues in RedHat bugzilla? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I made them public. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
At the first glance it appears to be the same as Is there a way to find out what happened before the crash in either of those occurrences? Was it an upgrade from a MariaDB version prior to 10.1.21? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Unfortunatelly not an easy way. The ABRT (automatic bug reporting tool) is powerfull to gather informations, but from my own experience, you - as a user - mostly know less, then the ABRT about what happened. I'll ask the reporters in those bug reports, but it'll be just matter of luck. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks. We don't need many details from them, just whether it happened upon or right after upgrade from an earlier version (pre-10.1.21). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
That "akonadi" config file should be standard, most likely. Akonadi is a "PIM Storage Service Libraries" package and it is required by KDE. (So I'd say users don't edit it much) So I'd look for that config file there. I tried to find one and paste it here, but I was unsuccessful so far. I'll search for it more. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Here I have one: akonadi and stuff | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2017-07-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thank you. Then maybe it's different from | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2017-07-12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Another report: rhbz#1421496 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-08-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
May I have full error log, based on code review InnoDB finds table on both default location and remote location (i.e. DATADIR='XXX') this could be inconsistency between data dictionary and SYS_DATAFILES table. Is there some easy way to repeat this ? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrii Nikitin (Inactive) [ 2017-08-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I bet some timing/luck in recovery is involved here.
Upstream doesn't show stack trace; just exits with the same message :
But following identical mtr test doesn't trigger the same problem in 10.1 and just expectedly reports only user error:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrii Nikitin (Inactive) [ 2017-08-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've attached data directory in data.zip , which triggers the problem on startup. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrii Nikitin (Inactive) [ 2017-08-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I can reproduce problem which I mentioned earlier with any InnoDB 5.6 version including upstream 5.6.3*, 5.6.11 and 10.0.32 and 10.0.24 ; so I am not sure how exactly it is related to the reports in Fedora | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2018-01-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I do not see a reason to crash even in crash recovery if .ibd file is missing. If we have undo or redo log records for such tablespace, there is already error handling. https://github.com/MariaDB/server/commit/0ecb2d7223788acc8efe07250d36b1706eed4b16 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2018-01-29 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The fix needs some more work and a new review. The problem basically is that the error must be propagated all the way up to innobase_init(). However, do we want to do this in MariaDB 10.1 or earlier? There is a known problem that after an aborted InnoDB startup, the server could crash on subsequent shutdown. This problem has been fixed in MariaDB 10.2 only; it required quite a bit of cleanup in the startup and shutdown code, which already varied a lot between MariaDB 10.2 and earlier versions. Perhaps it would suffice to avoid this abort() call in mariabackup? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2018-01-29 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I think that it is bad to call either exit() or abort() from a storage engine plugin. It is a matter of taste which one you consider worse. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2018-01-29 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I rather not do the required cleanup in GA-release so I will let it crash on this case and fix only the mariabackup case. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2018-01-29 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Closing as works as designed. Workaround is to use innodb-force-recovery=1. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2018-01-29 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks for the investigation. Just to clarify: "Starting with MariaDB 10.2.2, we would allow the server to start up without InnoDB." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2018-01-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This bug was fixed by me in WL#7142 (MySQL 5.7.5). The InnoDB crash recovery was changed so that if the redo log refers to files that are missing, InnoDB will propagate the error to the caller of innobase_init(). These changes were included in MariaDB 10.2.2. In MySQL 5.7, missing files would still abort the server startup unless innodb_force_recovery is specified, because InnoDB cannot be disabled there. In MariaDB, InnoDB can be disabled, and a failure to start up InnoDB will not prevent the rest of the server from starting up. Related to this, I fixed many things related to shutdown after aborted InnoDB startup in MariaDB 10.2. The bug is not feasible to fix in earlier MariaDB versions. Backporting the redo log format change is clearly out of the question, and the InnoDB code base has changed very much between MariaDB 10.1 and 10.2. The related bug in Mariabackup was fixed in | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Michal Schorm [ 2018-02-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I understand. Thanks for the investigation! |