Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-335

Valgrind warning "Invalid read of size 8" in lock_rec_validate_page on DML flow



    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 5.5.27
    • None
    • None


      == Invalid read of size 8
      ==26274==    at 0xB6EC68: lock_rec_validate_page (lock0lock.c:4962)
      ==26274==    by 0xB6EF87: lock_validate (lock0lock.c:5068)
      ==26274==    by 0xB6DD86: lock_print_info_all_transactions (lock0lock.c:4577)
      ==26274==    by 0xA6ACD8: srv_printf_innodb_monitor (srv0srv.c:2246)
      ==26274==    by 0xA6B88D: srv_monitor_thread (srv0srv.c:2563)
      ==26274==    by 0x503EEFB: start_thread (pthread_create.c:304)
      ==26274==    by 0x5CFF59C: clone (clone.S:112)
      ==26274==  Address 0x1f1753a0 is 688 bytes inside a block of size 872 free'd
      ==26274==    at 0x4C282E0: free (vg_replace_malloc.c:366)
      ==26274==    by 0xB82865: mem_area_free (mem0pool.c:523)
      ==26274==    by 0xB81214: mem_heap_block_free (mem0mem.c:511)
      ==26274==    by 0xB6219D: mem_heap_free_heap_top (mem0mem.ic:291)
      ==26274==    by 0xB62271: mem_heap_empty (mem0mem.ic:333)
      ==26274==    by 0xB6CEFD: lock_release_off_kernel (lock0lock.c:4150)
      ==26274==    by 0xA98A69: trx_commit_off_kernel (trx0trx.c:1043)
      ==26274==    by 0xA9A5C1: trx_commit_for_mysql (trx0trx.c:1774)
      ==26274==    by 0xA10271: innobase_commit_low(trx_struct*) (ha_innodb.cc:3164)
      ==26274==    by 0xA10464: innobase_commit_ordered_2(trx_struct*, THD*) (ha_innodb.cc:3250)
      ==26274==    by 0xA10829: innobase_commit(handlerton*, THD*, bool) (ha_innodb.cc:3364)
      ==26274==    by 0x7BFFEA: commit_one_phase_2(THD*, bool, THD_TRANS*, bool) (handler.cc:1373)
      ==26274==    by 0x7BFF49: ha_commit_one_phase(THD*, bool) (handler.cc:1356)
      ==26274==    by 0x7BFAB5: ha_commit_trans(THD*, bool) (handler.cc:1245)
      ==26274==    by 0x71A04A: trans_commit_stmt(THD*) (transaction.cc:299)
      ==26274==    by 0x6127C4: mysql_execute_command(THD*) (sql_parse.cc:4509)

      Also once got an assertion failure (with the same test), not sure whether it's related or not:

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

      bzr version-info

      revision-id: timour@askmonty.org-20120604150600-1wsxbe8tqqidke1s
      date: 2012-06-04 18:06:00 +0300
      revno: 3426

      Could not reproduce on maria/5.3, mysql-trunk, percona-server.
      Could not reproduce with InnoDB plugin.

      RQG command line:

      perl ./runall.pl \
      --threads=8 \
      --duration=1200 \
      --queries=100M \
      --valgrind \
      --grammar=conf/engines/many_indexes.yy \
      --gendata=conf/engines/many_indexes.zz \
      --engine=InnoDB \
      --basedir=<your basedir> --vardir=<your vardir>

      To see valgrind warnings, you'll need to check the server error log afterwards (or watch it while the test is running).

      The command line above runs the test with 8 threads – in fact, concurrent flow is not required, it can be done with 1 thread only. But the issue seems to be sporadic, and it takes longer with one thread.

      Happened every time I ran the test, but sometimes, depending on luck and the machine, although sometimes it took almost all 20 min given as test duration in the parameters. Normally it happens in 3-6 min after the real test flow starts (after RQG said "Loading Validator" for each thread).




            Unassigned Unassigned
            elenst Elena Stepanova
            0 Vote for this issue
            3 Start watching this issue



              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.