max value for innodb_use_purge_threads should be less than 64

Bug #755017 reported by Mark Callaghan on 2011-04-08
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to
Fix Released
Laurynas Biveinis

Bug Description

The innodb_purge_thread patch accepts a value up to 64 for the innodb_use_purge_thread variable. mtr --suite=innodb_plugin crashes quickly when it is set to 60 with the error:
110408 23:08:43 InnoDB: Assertion failure in thread 139699818366720 in file ./include/trx0roll.ic line 37
InnoDB: Failing assertion: n < arr->n_cells

And the stack is:

(gdb) where
#0 0x00007ffff6861ba5 in raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff68656b0 in abort () at abort.c:92
#2 0x000000000093d264 in trx_undo_arr_get_nth_info (arr=0x1a0e738, n=32)
    at ./include/trx0roll.ic:37
#3 0x0000000000937315 in trx_purge_arr_store_info (trx_no=784, undo_no=21)
    at trx/trx0purge.c:99
#4 0x000000000093981c in trx_purge_fetch_next_rec (roll_ptr=0x7fffdd501d38,
    cell=0x1a1f430, heap=0x1a1f8e0) at trx/trx0purge.c:1075
#5 0x00000000009194ee in row_purge (node=0x1a1f3e8, thr=0x1a1f248)
    at row/row0purge.c:623
#6 0x00000000009196d4 in row_purge_step (thr=0x1a1f248) at row/row0purge.c:700
#7 0x00000000008fd48f in que_thr_step (thr=0x1a1f248) at que/que0que.c:1248
#8 0x00000000008fd68f in que_run_threads_low (thr=0x1a1f248)
    at que/que0que.c:1306
#9 0x00000000008fd7a3 in que_run_threads (thr=0x1a1f248) at que/que0que.c:1343
#10 0x0000000000939dc6 in trx_purge_worker (worker_id=16)
    at trx/trx0purge.c:1248
#11 0x000000000092ea05 in srv_purge_worker_thread (arg=0x109bf88)
    at srv/srv0srv.c:3580
#12 0x00007ffff7bc6971 in start_thread (arg=<value optimized out>)
    at pthread_create.c:304

The number of cells in arr is UNIV_MAX_PARALLELISM, so the max value for innodb_use_purge_threads should be UNIV_MAX_PARALLELISM

Related branches

Changed in percona-server:
assignee: nobody → Laurynas Biveinis (laurynas-biveinis)
Changed in percona-server:
status: New → In Progress
Changed in percona-server:
status: In Progress → Fix Committed
Changed in percona-server:
status: Fix Committed → Fix Released

Percona now uses JIRA for bug reports so this bug report is migrated to:

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers