[MDEV-11483] Crash getByteOrder@SHA512 during restore of encrypted backup with FULLTEXT Created: 2016-12-05 Updated: 2016-12-08 Resolved: 2016-12-08 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Backup |
| Affects Version/s: | None |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Andrii Nikitin (Inactive) | Assignee: | Andrii Nikitin (Inactive) |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
I am getting following crash occasionally while restore encrypted backup with (empty) FULLTEXT index: 161205 11:52:04 [01] Copying ./test/film_text.ibd to F:/git/mysql-test/var/tmp/backup/test/film_text.ibd Mtr test below reproduces the problem (I added two more FULLTEXT indexes to increase chance of crash, but it crashes with single first index as well - just with smaller probability): .opt file: .test file: CREATE TABLE film_text ( let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; exec $XTRABACKUP --innobackupex --apply-log --rebuild-indexes --rebuild-threads=2 $targetdir; |
| Comments |
| Comment by Vladislav Vaintroub [ 2016-12-06 ] |
|
tried hard to reproduce, failed with mysql-test-run --repeat=100 (either debug or release) If you can add more data to the test to make it better reproducible, this would e much appreciated. |
| Comment by Andrii Nikitin (Inactive) [ 2016-12-07 ] |
|
Definitely some timing issues are invovled here. When I put `sleep 1` before backup creation or start debugger - no crash happens. I was able to reproduce some crash on Ubuntu, just by creating 9 tables tables with 3 fulltext indexes each and starting backup immediately afterward: InnoDB: Error: trying to access page number 0 in space 54, |
| Comment by Vladislav Vaintroub [ 2016-12-07 ] |
|
how large is the FTS_0000000000000044_DELETED_CACHE.idb file your var/mysqld.1/data/test after the crash? |
| Comment by Vladislav Vaintroub [ 2016-12-07 ] |
|
maybe you can attach this file to the report. |
| Comment by Andrii Nikitin (Inactive) [ 2016-12-07 ] |
|
I've realized that for some reasons debugging info was not enabled in 'Debug' configuration. After manual changing of corresponding compiling and linking options - the stack trace on windows looks like this: xtrabackup.exe!__my_thread_var() Debugger stops on following line and assert triggers inside fil_node_prepare_for_io because space = NULL I couldn't get anything useful from other threads - they seem sleeping or waiting on mutex |
| Comment by Andrii Nikitin (Inactive) [ 2016-12-07 ] |
|
This time crash was on different file, I am attaching it: |
| Comment by Andrii Nikitin (Inactive) [ 2016-12-07 ] |
|
Attached file is in source datadir, but in target directory problem file is really 0 size:
|
| Comment by Andrii Nikitin (Inactive) [ 2016-12-07 ] |
|
It looks file was copied while it was modified by mysqld : |
| Comment by Vladislav Vaintroub [ 2016-12-07 ] |
|
I think this can be split into different bugs, now that we know getByteOrder@SHA512 does not crash. There is something with empty files. And there is something else as well. |
| Comment by Andrii Nikitin (Inactive) [ 2016-12-07 ] |
|
Sorry for confusion - I think getByteOrder@SHA512 is just incorrect symbols because I somehow built without debug info. We should change ticket description to something more relevant to crash discussed. |
| Comment by Vladislav Vaintroub [ 2016-12-07 ] |
|
I pushed a tentative fix for small ibd , including a test It is hard to reproduce on my machine with full text and encryption. I'm not 100% sure whether fulltext example you have given pinpoints to some bug in xtradb/encryption/fulltext combination - I personally did not expect that there is a lot of files created after CREATE TABLE has successfully finished- we are not running anything in parallel in your example. Yet I'm not intimately familiar with the subject, and think this is outside of xtrabackup scope. Maybe it makes sense to consult Jan on this. |
| Comment by Andrii Nikitin (Inactive) [ 2016-12-08 ] |
|
Still crashing. |