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

Bug #1101030 reported by Roel Van de Paar
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
High
Laurynas Biveinis
5.1
Invalid
Undecided
Unassigned
5.5
Fix Released
High
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):
+bt
#0 0x0000003da180c60c in pthread_kill () from /lib64/libpthread.so.0
#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/signal_handler.cc:249
#3 <signal handler called>
#4 0x0000003da1435935 in raise () from /lib64/libc.so.6
#5 0x0000003da14370e8 in abort () from /lib64/libc.so.6
#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
g1086680/Percona-Server-5.5.28-rel29.3/storage/innobase/srv/srv0srv.c:2201
#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/libpthread.so.0
#11 0x0000003da14f168d in clone () from /lib64/libc.so.6

Tags: qa xtradb

Related branches

Revision history for this message
Roel Van de Paar (roel11) wrote :
Revision history for this message
Roel Van de Paar (roel11) wrote :
Revision history for this message
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.

Revision history for this message
Roel Van de Paar (roel11) wrote :
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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

 fprintf(file, "%lu read views open inside InnoDB\n",
  UT_LIST_GET_LEN(trx_sys->view_list));

 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.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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

Revision history for this message
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/libpthread-2.15.so)
==23575== by 0x3DA14F168C: clone (in /usr/lib64/libc-2.15.so)

Revision history for this message
Roel Van de Paar (roel11) wrote :

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

tags: added: xtradb
Revision history for this message
Roel Van de Paar (roel11) wrote :

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

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-617

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.