Bug #23220 | Falcon: Setting falcon_page_size to non-default size crashes Falcon | ||
---|---|---|---|
Submitted: | 12 Oct 2006 15:59 | Modified: | 19 Nov 2007 22:19 |
Reporter: | Hakan Küçükyılmaz | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S2 (Serious) |
Version: | 5.2,5.2.4-falcon-alpha-debug | OS: | Linux (Linux) |
Assigned to: | Hakan Küçükyılmaz | CPU Architecture: | Any |
[12 Oct 2006 15:59]
Hakan Küçükyılmaz
[12 Oct 2006 16:11]
Hakan Küçükyılmaz
Crashes also with 8k (gdb) run --gdb --user=mysql --falcon_page_size=8192 Program received signal SIGILL, Illegal instruction. [Switching to Thread 1263528880 (LWP 9340)] 0xffffe410 in __kernel_vsyscall () (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0x40181541 in raise () from /lib/tls/libc.so.6 #2 0x08426a9a in Error::debugBreak () at Error.cpp:93 #3 0x08426af7 in Error::error (string=0x87285f4 "page %d wrong page type, expected %d got %d\n") at Error.cpp:70 #4 0x08498bce in Cache::fetchPage (this=0x402f8c80, dbb=0x402f8720, pageNumber=31, pageType=PAGE_inventory, lockType=Exclusive) at Cache.cpp:183 #5 0x0841ded2 in Dbb::fetchPage (this=0x402f8720, pageNumber=31, pageType=PAGE_inventory, lockType=Exclusive) at Dbb.cpp:196 #6 0x0844e820 in PageInventoryPage::allocPage (dbb=0x402f8720, pageType=PAGE_sections, transId=1) at PageInventoryPage.cpp:77 #7 0x0841deef in Dbb::allocPage (this=0x402f8720, pageType=PAGE_sections, transId=1) at Dbb.cpp:201 #8 0x0846667e in Section::createSection (dbb=0x402f8720, transId=1) at Section.cpp:98 #9 0x0841dfa8 in Dbb::createSection (this=0x402f8720, transId=1) at Dbb.cpp:225 #10 0x08414938 in Database::createSection (this=0x4c6f8028, transaction=0x402fddd0) at Database.cpp:886 #11 0x083ed353 in Table::create (this=0x4030855c, tableType=0x8726c54 "SYSTEM TABLE", transaction=0x402fddd0) at Table.cpp:200 #12 0x0848a3d9 in Nfs::Statement::createTable (this=0x40306628, syntax=0x403084fc) at Statement.cpp:218 #13 0x0848a4f5 in Nfs::Statement::upgradeTable (this=0x40306628, syntax=0x403084fc) at Statement.cpp:1130 #14 0x0848b49d in Nfs::Statement::executeDDL (this=0x40306628) at Statement.cpp:689
[26 Jan 2007 16:48]
Ann Harrison
Allowing page sizes of 1K, 2K, 4K, 8K, 16K, and 32K. Changed the switch handling to accept anything between 0 - 32K. Zero and no switch default to 4K. Otherwise we round up to the next acceptable size. Changed a couple of short to unsigned short or int to allow 32K size.
[8 Feb 2007 7:09]
Calvin Sun
pushed into 5.2.1, and already documented.
[8 Feb 2007 18:54]
Hakan Küçükyılmaz
I could not verify the fix on Linux 64-bit, change set 1.2424.1.1, 2007-02-08. mysql> show variables like '%page%'; +----------------------------+---------+ | Variable_name | Value | +----------------------------+---------+ | falcon_page_cache_size | 4194304 | | falcon_page_size | 32768 | | innodb_max_dirty_pages_pct | 90 | | large_page_size | 0 | | large_pages | OFF | +----------------------------+---------+ 5 rows in set (0.01 sec) mysql> create table t1 (a int) engine falcon; ERROR 2013 (HY000): Lost connection to MySQL server during query Backtrace is: #0 0x0000002a95bf0479 in raise () from /lib64/tls/libc.so.6 #1 0x0000000000863dfe in Error::debugBreak () at Error.cpp:93 #2 0x0000000000863d85 in Error::error (string=0xbbf6d8 "page %d wrong page type, expected %d got %d\n") at Error.cpp:70 #3 0x00000000008e67fd in Cache::fetchPage (this=0x2a96453350, dbb=0x2a96452ce8, pageNumber=31, pageType=PAGE_inventory, lockType=Exclusive) at Cache.cpp:223 #4 0x000000000085b3ad in Dbb::fetchPage (this=0x2a96452ce8, pageNumber=31, pageType=PAGE_inventory, lockType=Exclusive) at Dbb.cpp:201 #5 0x00000000008948ef in PageInventoryPage::allocPage (dbb=0x2a96452ce8, pageType=PAGE_sections, transId=1) at PageInventoryPage.cpp:80 #6 0x000000000085b46f in Dbb::allocPage (this=0x2a96452ce8, pageType=PAGE_sections, transId=1) at Dbb.cpp:227 #7 0x00000000008ae06a in Section::createSection (dbb=0x2a96452ce8, transId=1) at Section.cpp:108 #8 0x000000000085b555 in Dbb::createSection (this=0x2a96452ce8, transId=1) at Dbb.cpp:251 #9 0x000000000085410a in Database::createSection (this=0x2a962516e8, transaction=0x2a9645dcf0) at Database.cpp:909 #10 0x00000000008288c7 in Table::create (this=0x2a9646a008, tableType=0xbbc8a3 "SYSTEM TABLE", transaction=0x2a9645dcf0) at Table.cpp:189 #11 0x00000000008d04a5 in Nfs::Statement::createTable (this=0x2a964545c0, syntax=0x2a96469f20) at Statement.cpp:218 #12 0x00000000008d3183 in Nfs::Statement::upgradeTable (this=0x2a964545c0, syntax=0x2a96469f20) at Statement.cpp:1129 #13 0x00000000008d2055 in Nfs::Statement::executeDDL (this=0x2a964545c0) at Statement.cpp:688 #14 0x00000000008d75b3 in Nfs::Statement::execute (this=0x2a964545c0, sqlString=0xbb6820 "upgrade table system.privileges (holderType tinyint not null,holderSchema varchar (128) not null,holderName varchar (128) not null,objectType tinyint not null,objectSchema varchar (128) not null,objec"..., isQuery=false) at Statement.cpp:2607 #15 0x00000000008d01a6 in Nfs::Statement::execute (this=0x2a964545c0, sqlString=0xbb6820 "upgrade table system.privileges (holderType tinyint not null,holderSchema varchar (128) not null,holderName varchar (128) not null,objectType tinyint not null,objectSchema varchar (128) not null,objec"...) at Statement.cpp:160 #16 0x00000000008d2cac in Nfs::Statement::executeUpdate (this=0x2a964545c0, sqlString=0xbb6820 "upgrade table system.privileges (holderType tinyint not null,holderSchema varchar (128) not null,holderName varchar (128) not null,objectType tinyint not null,objectSchema varchar (128) not null,objec"...) at Statement.cpp:1016 #17 0x00000000008a64a4 in RoleModel::createTables (this=0x2a96284920) at RoleModel.cpp:157 #18 0x00000000008532ea in Database::createDatabase (this=0x2a962516e8, filename=0x4027ed40 "./test.fts") at Database.cpp:526 #19 0x000000000084baf6 in Connection::createDatabase (this=0x2a96452aa0, dbName=0x2a964527d4 "test", fileName=0x2a96452804 "./test.fts", account=0xba3eb7 "mysql", password=0xba3eb7 "mysql", threads=0x2a96452830) at Connection.cpp:1058 #20 0x000000000081d004 in StorageDatabase::createDatabase (this=0x2a964523f0) at StorageDatabase.cpp:165 #21 0x000000000081bda8 in StorageConnection::create (this=0x2a964522c8) at StorageConnection.cpp:118 #22 0x000000000081f844 in StorageHandler::getStorageConnection (this=0x2a96251048, path=0xf9a1b0 "./test", mySqlThread=0x0, createFlag=OpenOrCreateDatabase) at StorageHandler.cpp:167 #23 0x0000000000815c67 in NfsStorageTable::create (this=0xfd8b18, mySqlName=0x40280a50 "./test/t1", form=0x4027fe10, info=0xfecc60) at ha_falcon.cpp:538 #24 0x000000000075c08f in ha_create_table (thd=0xfc54a8, path=0x40280a50 "./test/t1", db=0xfecb90 "test", table_name=0xfec890 "t1", create_info=0xfecc60, update_create_info=false) at handler.cc:2596 #25 0x000000000073149a in rea_create_table (thd=0xfc54a8, path=0x40280a50 "./test/t1", db=0xfecb90 "test", table_name=0xfec890 "t1", create_info=0xfecc60, create_fields=@0xfc5de8, keys=0, key_info=0xfecf38, file=0xfecd30) at unireg.cc:361 #26 0x00000000007751fc in mysql_create_table_internal (thd=0xfc54a8, db=0xfecb90 "test", table_name=0xfec890 "t1", lex_create_info=0xfc5fa8, fields=@0xfc5de8, keys=@0xfc5dd0, internal_tmp_table=false, select_field_count=0, use_copy_create_info=true) at sql_table.cc:3509 #27 0x0000000000775507 in mysql_create_table (thd=0xfc54a8, db=0xfecb90 "test", table_name=0xfec890 "t1", create_info=0xfc5fa8, fields=@0xfc5de8, keys=@0xfc5dd0, internal_tmp_table=false, select_field_count=0, use_copy_create_info=true) at sql_table.cc:3586 #28 0x00000000006737a3 in mysql_execute_command (thd=0xfc54a8) at sql_parse.cc:3088 #29 0x000000000067b713 in mysql_parse (thd=0xfc54a8, inBuf=0xfec808 "create table t1 (a int) engine falcon", length=37) at sql_parse.cc:6162 #30 0x0000000000670e66 in dispatch_command (command=COM_QUERY, thd=0xfc54a8, packet=0xfe4779 "create table t1 (a int) engine falcon", packet_length=38) at sql_parse.cc:1857 #31 0x0000000000670528 in do_command (thd=0xfc54a8) at sql_parse.cc:1626 #32 0x000000000066f658 in handle_one_connection (arg=0xfc54a8) at sql_parse.cc:1232 #33 0x0000002a95ef2aff in start_thread () from /lib64/tls/libpthread.so.0 #34 0x0000002a95c7c4b3 in clone () from /lib64/tls/libc.so.6 Regards, Hakan
[15 Feb 2007 22:08]
MySQL Verification Team
still asserts on todays BK sources of 5.2.4-falcon-alpha-debug. Ignore my previous post, i had forgotten to rm -rf my datadir first.
[18 Feb 2007 15:47]
Hakan Küçükyılmaz
Setting page size to 32KB leads to failure of falcon_bug_126. ./mysql-test-run.pl --skip-ndb --mysqld="--falcon_page_size=32768" falcon_bug_126_I falcon_bug_126_II TEST RESULT TIME (ms) ------------------------------------------------------- falcon_bug_126_I [ pass ] 513 falcon_bug_126_II [ fail ] Errors are (from /home/hakan/lsmy005/mysql/mysql-5.1-falcon-lu0009/mysql-test/var/log/mysqltest-time) : mysqltest: At line 7: query 'SELECT * FROM t1' failed: 1030: Got error 157 from storage engine (the last lines may be the most important ones) Result from queries before failure can be found in /home/hakan/lsmy005/mysql/mysql-5.1-falcon-lu0009/mysql-test/var/log/falcon_bug_126_II.log
[19 Feb 2007 16:29]
Hakan Küçükyılmaz
32K page size works now with falcon_select test. However, page sizes of 1K and 2K are still propblematic and some tests are failing: 1024 falcon_bug_185 falcon_bug_23189 falcon_bug_23818_A falcon_bug_23818_B falcon_bug_23818_C falcon_bug_23818_I falcon_bug_23818_II falcon_bug_26420 falcon_bugs falcon_limits 2048 falcon_bug_23818_A falcon_bug_23818_B falcon_bug_23818_C falcon_bug_23818_I falcon_bug_23818_II 4096 All ok. 499.727 seconds 8192 All ok. 463.906 seconds 16384 All ok. 411.623 seconds 32768 All ok 475.328 seconds Regards, Hakan
[19 Feb 2007 19:13]
Hakan Küçükyılmaz
Page size of 1K and 2K does not work properly. Modified falcon_page_size_1.test and falcon_page_size_2.test to reflect the crash. Regards, Hakan
[20 Feb 2007 21:26]
Kevin Lewis
Provided some code to Hakan for evaluation.
[2 Aug 2007 19:12]
MySQL Verification Team
Could you please reverify. I can't repeat on Windows X64: c:\dev\6.0>bin\mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 6.0.2-alpha-nt Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create schema test; use test; Query OK, 1 row affected (0.00 sec) Database changed mysql> set storage_engine=falcon; Query OK, 0 rows affected (0.00 sec) mysql> create table t1 (a int); Query OK, 0 rows affected (0.18 sec) mysql> show variables like "falcon_page_size"; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | falcon_page_size | 32768 | +------------------+-------+ 1 row in set (0.01 sec) mysql> show variables like "%version%"; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | protocol_version | 10 | | version | 6.0.2-alpha-nt | | version_comment | Source distribution | | version_compile_machine | unknown | | version_compile_os | Win64 | +-------------------------+---------------------+ 5 rows in set (0.00 sec) mysql> show create table t1; +-------+---------------------------------------------------------------------------------------+ | Table | Create Table | +-------+---------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=Falcon DEFAULT CHARSET=latin1 | +-------+---------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> Thanks in advance.
[2 Aug 2007 23:26]
Hakan Küçükyılmaz
Actually 32k does not crash anymore. However, page size of 1k and 2k are crashing. Can you verify with 1k and 2k, please? Thanks, Hakan
[2 Sep 2007 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[2 Sep 2007 23:37]
Hakan Küçükyılmaz
I think page size of 1k and 2k are still crashing Falcon.
[16 Oct 2007 11:57]
Hakan Küçükyılmaz
Page size of 1K and 2K are still crashing Falcon. We should disable 1K and 2K pages or fix the crash. Best regards, Hakan
[18 Oct 2007 19:50]
Hakan Küçükyılmaz
Still fails, please use falcon_page_size_1.test and falcon_page_size_2.test ./mysql-test-run.pl --enable-disabled --skip-ndb --mem --suite=falcon falcon_page_size_1 falcon_page_size_2 TEST RESULT TIME (ms) ------------------------------------------------------- falcon.falcon_page_size_1 [ fail ] ERROR: Bug#23220 2007-02-19 hakank Currently failing Stopping All Servers Restoring snapshot of databases Resuming Tests falcon.falcon_page_size_2 [ fail ] ERROR: Bug#23220 2007-02-19 hakank Currently failing Stopping All Servers Restoring snapshot of databases Saving core.8899 Resuming Tests ------------------------------------------------------- Stopping All Servers Failed 2/2 tests, 0.00% were successful.
[19 Nov 2007 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[19 Nov 2007 22:19]
Hakan Küçükyılmaz
Initial bug report about page size of 32k does not fail anymore hakan@lu0011:~/work/mysql/mysql-6.0-falcon/mysql-test$ ./mysql-test-run.pl --force --suite=falcon falcon_page_size_32 TEST RESULT TIME (ms) ------------------------------------------------------- falcon.falcon_page_size_32 [ pass ] 468 ------------------------------------------------------- Stopping All Servers All 1 tests were successful. The servers were restarted 1 times Spent 0.468 of 7 seconds executing testcases Opening new bug about failing 1k and 2k page sizes.