Comment 2 for bug 1076215

Revision history for this message
yinfeng (yinfeng-zwx) wrote : Re: some confusing code in buf_LRU_mark_space_was_deleted

buf_LRU_flush_or_remove_pages won't call buf_LRU_drop_page_hash_for_tablespace if buf_remove=BUF_REMOVE_FLUSH_NO_WRITE. Bellow is the quited code from buf_LRU_flush_or_remove_pages

        case BUF_REMOVE_FLUSH_NO_WRITE:
            /* A DROP table case. AHI entries are already
            removed. No need to evict all pages from LRU
            list. Just evict pages from flush list without
            writing. */
            buf_flush_dirty_pages(buf_pool, id);
            break;

backtrace of the first call to free page hash index entries:

#0 btr_search_drop_page_hash_when_freed (space=17296, zip_size=4096, page_no=622)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/btr/btr0sea.c:1447
#1 0x0000000000855c29 in fseg_free_extent (seg_inode=<value optimized out>, space=17296, zip_size=4096, page=576, mtr=0x7fe183a5ffd0)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/fsp/fsp0fsp.c:3498
#2 0x0000000000856a24 in fseg_free_step (header=<value optimized out>, mtr=0x7fe183a5ffd0)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/fsp/fsp0fsp.c:3598
#3 0x00000000007f7441 in btr_free_but_not_root (space=17296, zip_size=4096, root_page_no=3)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/btr/btr0btr.c:1544
#4 0x0000000000826e7e in dict_drop_index_tree (rec=0x7fe43dc076c6 "", mtr=0x7fe183a60580)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/dict/dict0crea.c:795
#5 0x00000000007be8fd in row_upd_clust_step (node=0x7fe17802e088, thr=0x7fe17802fd68)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/row/row0upd.c:2210
#6 0x00000000007bf2be in row_upd (thr=0x7fe17802fd68) at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/row/row0upd.c:2356
#7 row_upd_step (thr=0x7fe17802fd68) at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/row/row0upd.c:2496
#8 0x00000000008a4b08 in que_thr_step (thr=0x7fe17802fd68) at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/que/que0que.c:1238
#9 que_run_threads_low (thr=0x7fe17802fd68) at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/que/que0que.c:1319
#10 que_run_threads (thr=0x7fe17802fd68) at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/que/que0que.c:1356
#11 0x00000000008a5206 in que_eval_sql (info=<value optimized out>, sql=<value optimized out>, reserve_dict_mutex=<value optimized out>,
    trx=0x7fe178013bf8) at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/que/que0que.c:1445
#12 0x00000000007ac98a in row_drop_table_for_mysql (name=0x7fe183a60ff0 "sbtest/sbtest6", trx=0x7fe178013bf8, drop_db=<value optimized out>)
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/row/row0mysql.c:3433
#13 0x00000000007974c0 in ha_innobase::delete_table (this=<value optimized out>, name=0x7fe183a62500 "./sbtest/sbtest6")
    at /u01/project/Percona-Server-5.5.28-rel29.1/storage/innobase/handler/ha_innodb.cc:8361
#14 0x0000000000699f0e in ha_delete_table (thd=0x14870730, table_type=<value optimized out>, path=0x7fe183a62500 "./sbtest/sbtest6",
    db=0x7fe178004ee8 "sbtest", alias=0x7fe178004988 "sbtest6", generate_warning=true)
    at /u01/project/Percona-Server-5.5.28-rel29.1/sql/handler.cc:2211