Merge lp:~laurynas-biveinis/percona-server/bug1227581 into lp:percona-server/5.6
Status: | Merged |
---|---|
Approved by: | Alexey Kopytov |
Approved revision: | no longer in the source branch. |
Merged at revision: | 430 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug1227581 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
67 lines (+19/-4) 2 files modified
Percona-Server/storage/innobase/buf/buf0buf.cc (+4/-1) Percona-Server/storage/innobase/buf/buf0flu.cc (+15/-3) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/bug1227581 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexey Kopytov (community) | Approve | ||
Laurynas Biveinis | Pending | ||
Review via email: mp+187452@code.launchpad.net |
This proposal supersedes a proposal from 2013-09-24.
Description of the change
2nd MP:
http://
- Replaced buf_page_
1st MP:
Fix bug 1227581 (InnoDB: Failing assertion: buf_page_
file buf0flu.cc line 2674 | abort (sig=6) in
buf_pool_
The issue is that buf_LRU_free_page() may perform a flush list
relocation for a dirty zip page, making it possible to observe a page
in BUF_BLOCK_
buf_LRU_
calls, if another thread reads flush list pages without the LRU list
mutex.
Places where a thread iterates through the flush list without the LRU
list mutex and does not expect to see a BUF_BLOCK_
buf_pool_
buf_get_
pages there:
- in buf_pool_
BUF_BLOCK_
- in buf_flush_
buf_do_
- in buf_flush_set_hp(), also called from buf_do_
allow setting hazard pointer on such page.
- in buf_get_
page as BUF_BLOCK_
http://
Thread 1 (LWP 20662): libpthread. so.0 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/signal_ handler. cc:254 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ include/ buf0buf. ic:719 get_dirty_ pages_count (buf_pool= 0x1eb78f8, id=84) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ buf/buf0flu. cc:2688 dirty_pages (buf_pool= 0x1eb78f8, id=84, flush=false, trx=0x0) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ buf/buf0lru. cc:728 remove_ pages (trx=0x0, buf_remove= <optimized out>, id=84, buf_pool=0x1eb78f8) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ buf/buf0lru. cc:908 flush_or_ remove_ pages (id=84, buf_remove= BUF_REMOVE_ FLUSH_NO_ WRITE, trx=0x0) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ buf/buf0lru. cc:964 tablespace (id=84, buf_remove= BUF_REMOVE_ FLUSH_NO_ WRITE) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ fil/fil0fil. cc:2753 table_for_ mysql (name=0x7fd8286 41901 "\260", <incomplete sequence \340>, trx=<optimized out>, drop_db=<optimized out>, nonatomic= <optimized out>) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ row/row0mysql. cc:4242 :delete_ table (this=<optimized out>, name=0x7fd828642dc0 "./test/ trigger120626" ) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ storage/ innobase/ handler/ ha_innodb. cc:10460 <optimized out>, path=0x7fd828642dc0 "./test/ trigger120626" , db=0x7fd7b0005410 "test", alias=0x7fd7b00 04e68 "trigger120626", generate_ warning= true) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/handler. cc:2367 table_no_ locks (thd=0x2656660, tables= 0x7fd7b0004eb0, if_exists=true, drop_temporary= false, drop_view=false, dont_log_ query=false) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/sql_ table.cc: 2467 0x7fd7b0004eb0, if_exists=1 '\001', drop_temporary=0 '\000') at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/sql_ table.cc: 2163 command (thd=0x2656660) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/sql_ parse.cc: 3931 state=< optimized out>) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/sql_ parse.cc: 6569 0x7fd828644910 "`fe\002", packet_length=61) at /bzr/5. 6-QA_dbg/ Percona- Server- 5.6.13- rc60.5/ sql/sql_ parse.cc: 1436
+bt
#0 0x000000363720c69c in pthread_kill () from /lib64/
#1 0x0000000000687c4e in handle_fatal_signal (sig=6) at /bzr/5.
#2 <signal handler called>
#3 0x0000003636e328a5 in raise () from /lib64/libc.so.6
#4 0x0000003636e34085 in abort () from /lib64/libc.so.6
#5 0x0000000000b91582 in buf_page_get_space (bpage=<optimized out>) at /bzr/5.
#6 buf_pool_
#7 0x0000000000b994f4 in buf_flush_
#8 0x0000000000b9a1b8 in buf_LRU_
#9 buf_LRU_
#10 0x0000000000bd6b5b in fil_delete_
#11 0x0000000000ad5df0 in row_drop_
#12 0x0000000000a0780f in ha_innobase:
#13 0x00000000005c0e66 in ha_delete_table (thd=0x2656660, table_type=
#14 0x000000000077e5de in mysql_rm_
#15 0x000000000077f6f6 in mysql_rm_table (thd=0x2656660, tables=
#16 0x0000000000724cb2 in mysql_execute_
#17 0x0000000000729108 in mysql_parse (thd=0x2656660, rawbuf=0x2658a50 "P#9\001", length=<optimized out>, parser_
#18 0x000000000072a26c in dispatch_command (command=COM_QUERY, thd=0x2656660, packet=
#19 0x000000000072b467 in do_command (thd=0x2656660) at /bzr/5.6-...