InnoDB: Failing assertion: n < view->n_trx_ids in file read0read.ic line 36

Bug #1101030 reported by Roel Van de Paar on 2013-01-18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server
Laurynas Biveinis
Laurynas Biveinis

Bug Description

130117 12:52:23 InnoDB: Assertion failure in thread 386746112 in file read0read.ic line 36
InnoDB: Failing assertion: n < view->n_trx_ids

Thread 25 (LWP 8764):
#0 0x0000003da180c60c in pthread_kill () from /lib64/
#1 0x00000000007de828 in my_write_core (sig=6) at /ssd/bug1086680/Percona-Server-5.5.28-rel29.3/mysys/stacktrace.c:433
#2 0x00000000006b2e04 in handle_fatal_signal (sig=6) at /ssd/bug1086680/Percona-Server-5.5.28-rel29.3/sql/
#3 <signal handler called>
#4 0x0000003da1435935 in raise () from /lib64/
#5 0x0000003da14370e8 in abort () from /lib64/
#6 0x0000000000834063 in read_view_get_nth_trx_id (n=16, view=0xebe2948) at /ssd/bug1086680/Percona-Server-5.5.28-rel29.3/storage/innobase/include/read0read.ic:36
#7 read_view_print (file=file@entry=0x5d0f6f0, view=view@entry=0xebe2948) at /ssd/bug1086680/Percona-Server-5.5.28-rel29.3/storage/innobase/read/read0read.c:388
#8 0x00000000008729c5 in srv_printf_innodb_monitor (file=0x5d0f6f0, nowait=nowait@entry=1, trx_start=trx_start@entry=0x0, trx_end=trx_end@entry=0x0) at /ssd/bu
#9 0x0000000000873892 in srv_monitor_thread (arg=<optimized out>) at /ssd/bug1086680/Percona-Server-5.5.28-rel29.3/storage/innobase/srv/srv0srv.c:2580
#10 0x0000003da1807d14 in start_thread () from /lib64/
#11 0x0000003da14f168d in clone () from /lib64/

Related branches

Roel Van de Paar (roel11) wrote :
Roel Van de Paar (roel11) wrote :
Roel Van de Paar (roel11) wrote :

Roel has testcase (same one as for bug bug1086680 / bug 1083058). Laurynas has copy also. Happy to do patch>test rounds once initial patch is available.

Extended XtraDB status added last read view info, which read dirty:

 fprintf(file, "%lu read views open inside InnoDB\n",

 if (UT_LIST_GET_LEN(trx_sys->view_list)) {
  read_view_t* view = UT_LIST_GET_LAST(trx_sys->view_list);

  if (view) {
   fprintf(file, "---OLDEST VIEW---\n");
   read_view_print(file, view);
   fprintf(file, "-----------------\n");

It needs to take the kernel_mutex or skip print, according to the nowait arg value.

5.1 only reads the read view list length, which is dirty, but never from deallocated memory.

Roel Van de Paar (roel11) wrote :

Possibly related stack, as discussed with Laurynas:

==23575== Thread 14:
==23575== Conditional jump or move depends on uninitialised value(s)
==23575== at 0x828CF1: read_view_print (read0read.c:366)
==23575== by 0x871EA5: srv_printf_innodb_monitor (srv0srv.c:2201)
==23575== by 0x872D72: srv_monitor_thread (srv0srv.c:2580)
==23575== by 0x3DA1807D13: start_thread (in /usr/lib64/
==23575== by 0x3DA14F168C: clone (in /usr/lib64/

Roel Van de Paar (roel11) wrote :

Also seen in QA-16274-5.5 tree @ revid 416 (debug-valgrind)

tags: added: xtradb
Roel Van de Paar (roel11) wrote :

Also seen in QA-16724-5.5-2 tree @ revid 422 (debug-valgrind)

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

Other bug subscribers