Description:
While loading of database for flightstat benchmark I got situation when creation of index consumes all available memory so I was forced to kill mysqld process with signal 9. After that I restarted server and got assertion during recovery with following backtrace:
snippet from error log:
...
[Falcon] Error: page 1929377/1 wrong page type, expected 5 got 7
...
bt:
#0 0x00002b97b1a784c5 in pthread_kill () from /lib64/libpthread.so.0
#1 0x0000000000644dbe in handle_segfault (sig=6) at mysqld.cc:2660
#2 <signal handler called>
#3 0x00002b97b1a7afed in raise () from /lib64/libpthread.so.0
#4 0x000000000087ef2f in Error::error (string=<value optimized out>) at Error.cpp:94
#5 0x00000000008f98c1 in Cache::fetchPage (this=0x2aaaab2d4fe8, dbb=0x2aaaab4b8fd8, pageNumber=1929377,
pageType=PAGE_btree, lockType=Exclusive) at Cache.cpp:302
#6 0x0000000000874d7a in Dbb::handoffPage (this=0x0, bdb=0x2aaaadce0798, pageNumber=6, pageType=4294967295,
lockType=4294967295) at Dbb.cpp:221
#7 0x000000000088f0f2 in IndexRootPage::findInsertionLeaf (dbb=0x2aaaab4b8fd8, indexId=29, indexKey=0x7ffff9150d20,
recordNumber=29883748, transId=<value optimized out>) at IndexRootPage.cpp:312
#8 0x000000000088faa2 in IndexRootPage::indexMerge (dbb=0x2aaaab4b8fd8, indexId=29, logRecord=0x7ffff9156860, transId=0)
at IndexRootPage.cpp:950
#9 0x00000000008d5b6b in SerialLog::recover (this=0x2aaaab43cce8) at SerialLog.cpp:363
#10 0x000000000086e02d in Database::openDatabase (this=0x2aaaab2acbb8,
filename=0x7ffff9156c10 "/data1/mysql/flightstats_test/falcon_master.fts") at Database.cpp:735
#11 0x0000000000863b22 in Connection::getDatabase (this=0x2aaaab4ad778, dbName=0x2aaaab4ad344 "FALCON_MASTER",
dbFileName=0x7ffff9156c10 "/data1/mysql/flightstats_test/falcon_master.fts", threads=0x2aaaab4ad3a0)
at Connection.cpp:1651
#12 0x0000000000865049 in Connection::openDatabase (this=0x2aaaab4ad778, dbName=0x2aaaab4ad344 "FALCON_MASTER",
filename=<value optimized out>, account=0xb7dfb0 "mysql", password=0xb7dfb0 "mysql", address=0x0, parent=0x2aaaab4ad3a0)
at Connection.cpp:934
#13 0x00000000008325d7 in StorageDatabase::getOpenConnection (this=0x2aaaab4ad1b8) at StorageDatabase.cpp:136
#14 0x0000000000834fb2 in StorageHandler::initialize (this=0x2aaaab2ac040) at StorageHandler.cpp:978
#15 0x0000000000824271 in StorageInterface::falcon_init (p=<value optimized out>) at ha_falcon.cpp:215
#16 0x0000000000733e18 in ha_initialize_handlerton (plugin=0x1a0bcc8) at handler.cc:426
#17 0x00000000007ba60a in plugin_initialize (plugin=0x1a0bcc8) at sql_plugin.cc:1011
#18 0x00000000007bd5b5 in plugin_init (argc=0xf6b5f0, argv=0x19db9d8, flags=<value optimized out>) at sql_plugin.cc:1218
#19 0x000000000064681e in init_server_components () at mysqld.cc:4045
#20 0x00000000006496bb in main (argc=<value optimized out>, argv=<value optimized out>) at mysqld.cc:4492
There is similar issue filed some time ago: BUG#39215.
How to repeat:
Steps to reproduce this will hopefully follow shortly.
Meanwhile datadir and core files are accessible by request.