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

Assertion `toku_ft_needed_unlocked(src_h)' failed (errno=11) on INSERT .. SELECT after EXPLAIN INSERT

Details

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

    Description

      I can't re-check it on a Tokutek port of MariaDB or MySQL because the scenario involves EXPLAIN INSERT which is not in 5.5.

      Test case:

      # Make sure TokuDB engine is enabled. 
      # Depending on the flavor of server,
      #   it can happen automatically, or be done 
      #   by providing correct plugin_dir and plugin-load=ha_tokudb on server startup, 
      #   or by providing correct plugin_dir on startup and running 
      #     INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so'.
      # If the test is run via MTR, it can be done by adding an <testname>.opt file
      #   containing 
      #     --tokudb --plugin-load=ha_tokudb
      #   or by adding 
      #      INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so'
      #   to the test case.
       
      CREATE TABLE t1 (i INT) ENGINE=TokuDB;
      EXPLAIN INSERT INTO t1 SELECT * FROM t1;
       
      --connect (con1,localhost,root,,test)
      INSERT INTO t1 SELECT * FROM t1;

      Version: '10.0.7-MariaDB-debug'  socket: '10.0/data/tmp/mysql.sock'  port: 3306  Source distribution
      10.0/storage/tokudb/ft-index/ft/ft.cc:689 dictionary_redirect_internal: Assertion `toku_ft_needed_unlocked(src_h)' failed (errno=11)
      : Resource temporarily unavailable
      Backtrace: (Note: toku_do_assert=0x0x7f4e1292cca7)

      Engine status:
      BUILD_ID = 0
      Env panic code: 11
      Env panic string: 10.0/storage/tokudb/ft-index/ft/ft.cc:689 dictionary_redirect_internal: Assertion `toku_ft_needed_unlocked(src_h)' failed (errno=11)
       
      time of environment creation: Tue Dec 10 13:16:55 2013
      time of engine startup: Tue Dec 10 13:16:54 2013
      time now: Tue Dec 10 13:18:00 2013
      db opens: 12
      db closes: 9
      num open dbs now: 2
      max open dbs: 2
      period, in ms, that recovery log is automatically fsynced: 0
      dictionary inserts: 20
      dictionary inserts fail: 0
      dictionary deletes: 3
      dictionary deletes fail: 0
      dictionary updates: 0
      dictionary updates fail: 0
      dictionary broadcast updates: 0
      dictionary broadcast updates fail: 0
      dictionary multi inserts: 0
      dictionary multi inserts fail: 0
      dictionary multi deletes: 0
      dictionary multi deletes fail: 0
      dictionary updates multi: 0
      dictionary updates multi fail: 0
      le: max committed xr: 2
      le: max provisional xr: 2
      le: expanded: 0
      le: max memsize: 466
      checkpoint: period: 60
      checkpoint: footprint: 0
      checkpoint: last checkpoint began : Tue Dec 10 13:17:55 2013
      checkpoint: last complete checkpoint began : Tue Dec 10 13:17:55 2013
      checkpoint: last complete checkpoint ended: Tue Dec 10 13:17:55 2013
      checkpoint: last complete checkpoint LSN: 94
      checkpoint: checkpoints taken : 2
      checkpoint: checkpoints failed: 0
      checkpoint: waiters now: 0
      checkpoint: waiters max: 0
      checkpoint: non-checkpoint client wait on mo lock: 0
      checkpoint: non-checkpoint client wait on cs lock: 0
      cachetable: miss: 8
      cachetable: miss time: 489
      cachetable: prefetches: 0
      cachetable: size current: 3160
      cachetable: size limit: 4617302835
      cachetable: size writing: 0
      cachetable: size nonleaf: 0
      cachetable: size leaf: 2920
      cachetable: size rollback: 240
      cachetable: size cachepressure: 0
      cachetable: evictions: 10
      cachetable: cleaner executions: 65
      cachetable: cleaner period: 1
      cachetable: cleaner iterations: 5
      locktree: memory size: 24
      locktree: memory size limit: 524693504
      locktree: number of times lock escalation ran: 0
      locktree: time spent running escalation (seconds): 0.000000
      locktree: latest post-escalation memory size: 0
      locktree: number of locktrees open now: 5
      locktree: number of pending lock requests: 0
      locktree: number of locktrees eligible for the STO: 1
      locktree: number of times a locktree ended the STO early: 0
      locktree: time spent ending the STO early (seconds): 0.000000
      brt: dictionary updates: 0
      brt: dictionary broadcast updates: 0
      brt: descriptor set: 2
      brt: messages ignored by leaf due to msn: 0
      brt: total search retries due to TRY_AGAIN: 0
      brt: searches requiring more tries than the height of the tree: 0
      brt: searches requiring more tries than the height of the tree plus three: 0
      brt: leaf nodes flushed to disk (not for checkpoint): 4
      brt: leaf nodes flushed to disk (not for checkpoint) (bytes): 2048
      brt: leaf nodes flushed to disk (not for checkpoint) (uncompressed bytes): 1508
      brt: leaf nodes flushed to disk (not for checkpoint) (seconds): 0.000048
      brt: nonleaf nodes flushed to disk (not for checkpoint): 0
      brt: nonleaf nodes flushed to disk (not for checkpoint) (bytes): 0
      brt: nonleaf nodes flushed to disk (not for checkpoint) (uncompressed bytes): 0
      brt: nonleaf nodes flushed to disk (not for checkpoint) (seconds): 0.000000
      brt: leaf nodes flushed to disk (for checkpoint): 5
      brt: leaf nodes flushed to disk (for checkpoint) (bytes): 2560
      brt: leaf nodes flushed to disk (for checkpoint) (uncompressed bytes): 824
      brt: leaf nodes flushed to disk (for checkpoint) (seconds): 0.000028
      brt: nonleaf nodes flushed to disk (for checkpoint): 0
      brt: nonleaf nodes flushed to disk (for checkpoint) (bytes): 0
      brt: nonleaf nodes flushed to disk (for checkpoint) (uncompressed bytes): 0
      brt: nonleaf nodes flushed to disk (for checkpoint) (seconds): 0.000000
      brt: nonleaf node partial evictions: 0
      brt: nonleaf node partial evictions (bytes): 0
      brt: leaf node partial evictions: 0
      brt: leaf node partial evictions (bytes): 0
      brt: leaf node full evictions: 10
      brt: leaf node full evictions (bytes): 7200
      brt: nonleaf node full evictions: 0
      brt: nonleaf node full evictions (bytes): 0
      brt: leaf nodes created: 10
      brt: nonleaf nodes created: 0
      brt: leaf nodes destroyed: 17
      brt: nonleaf nodes destroyed: 0
      brt: bytes of messages injected at root (all trees): 0
      brt: bytes of messages flushed from h1 nodes to leaves: 0
      brt: bytes of messages currently in trees (estimate): 0
      brt: messages injected at root: 0
      brt: broadcast messages injected at root: 0
      brt: basements decompressed as a target of a query: 0
      brt: basements decompressed for prelocked range: 0
      brt: basements decompressed for prefetch: 0
      brt: basements decompressed for write: 0
      brt: buffers decompressed as a target of a query: 0
      brt: buffers decompressed for prelocked range: 0
      brt: buffers decompressed for prefetch: 0
      brt: buffers decompressed for write: 0
      brt: pivots fetched for query: 0
      brt: pivots fetched for query (bytes): 0
      brt: pivots fetched for query (seconds): 0.000000
      brt: pivots fetched for prefetch: 0
      brt: pivots fetched for prefetch (bytes): 0
      brt: pivots fetched for prefetch (seconds): 0.000000
      brt: pivots fetched for write: 0
      brt: pivots fetched for write (bytes): 0
      brt: pivots fetched for write (seconds): 0.000000
      brt: basements fetched as a target of a query: 0
      brt: basements fetched as a target of a query (bytes): 0
      brt: basements fetched as a target of a query (seconds): 0.000000
      brt: basements fetched for prelocked range: 0
      brt: basements fetched for prelocked range (bytes): 0
      brt: basements fetched for prelocked range (seconds): 0.000000
      brt: basements fetched for prefetch: 0
      brt: basements fetched for prefetch (bytes): 0
      brt: basements fetched for prefetch (seconds): 0.000000
      brt: basements fetched for write: 0
      brt: basements fetched for write (bytes): 0
      brt: basements fetched for write (seconds): 0.000000
      brt: buffers fetched as a target of a query: 0
      brt: buffers fetched as a target of a query (bytes): 0
      brt: buffers fetched as a target of a query (seconds): 0.000000
      brt: buffers fetched for prelocked range: 0
      brt: buffers fetched for prelocked range (bytes): 0
      brt: buffers fetched for prelocked range (seconds): 0.000000
      brt: buffers fetched for prefetch: 0
      brt: buffers fetched for prefetch (bytes): 0
      brt: buffers fetched for prefetch (seconds): 0.000000
      brt: buffers fetched for write: 0
      brt: buffers fetched for write (bytes): 0
      brt: buffers fetched for write (seconds): 0.000000
      brt: leaf compression to memory (seconds): 0.004002
      brt: leaf serialization to memory (seconds): 0.000174
      brt: leaf decompression to memory (seconds): 0.000092
      brt: leaf deserialization to memory (seconds): 0.000197
      brt: nonleaf compression to memory (seconds): 0.000000
      brt: nonleaf serialization to memory (seconds): 0.000000
      brt: nonleaf decompression to memory (seconds): 0.000000
      brt: nonleaf deserialization to memory (seconds): 0.000000
      brt: promotion: roots split: 0
      brt: promotion: leaf roots injected into: 26
      brt: promotion: h1 roots injected into: 0
      brt: promotion: injections at depth 0: 0
      brt: promotion: injections at depth 1: 0
      brt: promotion: injections at depth 2: 0
      brt: promotion: injections at depth 3: 0
      brt: promotion: injections lower than depth 3: 0
      brt: promotion: stopped because of a nonempty buffer: 0
      brt: promotion: stopped at height 1: 0
      brt: promotion: stopped because the child was locked or not at all in memory: 0
      brt: promotion: stopped because the child was not fully in memory: 0
      brt: promotion: stopped anyway, after locking the child: 0
      brt flusher: total nodes potentially flushed by cleaner thread: 0
      brt flusher: height-one nodes flushed by cleaner thread: 0
      brt flusher: height-greater-than-one nodes flushed by cleaner thread: 0
      brt flusher: nodes cleaned which had empty buffers: 0
      brt flusher: nodes dirtied by cleaner thread: 0
      brt flusher: max bytes in a buffer flushed by cleaner thread: 0
      brt flusher: min bytes in a buffer flushed by cleaner thread: 18446744073709551615
      brt flusher: total bytes in buffers flushed by cleaner thread: 0
      brt flusher: max workdone in a buffer flushed by cleaner thread: 0
      brt flusher: min workdone in a buffer flushed by cleaner thread: 18446744073709551615
      brt flusher: total workdone in buffers flushed by cleaner thread: 0
      brt flusher: times cleaner thread tries to merge a leaf: 0
      brt flusher: cleaner thread leaf merges in progress: 0
      brt flusher: cleaner thread leaf merges successful: 0
      brt flusher: nodes dirtied by cleaner thread leaf merges: 0
      brt flusher: total number of flushes done by flusher threads or cleaner threads: 0
      brt flusher: number of in memory flushes: 0
      brt flusher: number of flushes that read something off disk: 0
      brt flusher: number of flushes that triggered another flush in child: 0
      brt flusher: number of flushes that triggered 1 cascading flush: 0
      brt flusher: number of flushes that triggered 2 cascading flushes: 0
      brt flusher: number of flushes that triggered 3 cascading flushes: 0
      brt flusher: number of flushes that triggered 4 cascading flushes: 0
      brt flusher: number of flushes that triggered 5 cascading flushes: 0
      brt flusher: number of flushes that triggered over 5 cascading flushes: 0
      brt flusher: leaf node splits: 0
      brt flusher: nonleaf node splits: 0
      brt flusher: leaf node merges: 0
      brt flusher: nonleaf node merges: 0
      brt flusher: leaf node balances: 0
      hot: operations ever started: 0
      hot: operations successfully completed: 0
      hot: operations aborted: 0
      hot: max number of flushes from root ever required to optimize a tree: 0
      txn: begin: 51
      txn: begin read only: 0
      txn: successful commits: 39
      txn: aborts: 11
      logger: next LSN: 101
      logger: ilock count: 145
      logger: olock count: 124
      logger: swap count: 22
      logger: writes: 22
      logger: writes (bytes): 6874
      logger: writes (uncompressed bytes): 6874
      logger: writes (seconds): 0.000563
      indexer: number of indexers successfully created: 0
      indexer: number of calls to toku_indexer_create_indexer() that failed: 0
      indexer: number of calls to indexer->build() succeeded: 0
      indexer: number of calls to indexer->build() failed: 0
      indexer: number of calls to indexer->close() that succeeded: 0
      indexer: number of calls to indexer->close() that failed: 0
      indexer: number of calls to indexer->abort(): 0
      indexer: number of indexers currently in existence: 0
      indexer: max number of indexers that ever existed simultaneously: 0
      loader: number of loaders successfully created: 2
      loader: number of calls to toku_loader_create_loader() that failed: 0
      loader: number of calls to loader->put() succeeded: 0
      loader: number of calls to loader->put() failed: 0
      loader: number of calls to loader->close() that succeeded: 1
      loader: number of calls to loader->close() that failed: 0
      loader: number of calls to loader->abort(): 0
      loader: number of loaders currently in existence: 0
      loader: max number of loaders that ever existed simultaneously: 1
      memory: number of malloc operations: 0
      memory: number of free operations: 0
      memory: number of realloc operations: 0
      memory: number of malloc operations that failed: 0
      memory: number of realloc operations that failed: 0
      memory: number of bytes requested: 0
      memory: number of bytes used (requested + overhead): 0
      memory: number of bytes freed: 0
      memory: estimated maximum memory footprint: 0
      memory: mallocator version: 3.3.1-0-g9ef9d9e8c271cdf14f664b871a8f98c827714784
      memory: mmap threshold: 4194304
      filesystem: ENOSPC redzone state: 0
      filesystem: threads currently blocked by full disk: 0
      filesystem: number of operations rejected by enospc prevention (red zone): 0
      filesystem: most recent disk full: Thu Jan  1 03:00:00 1970
      filesystem: number of write operations that returned ENOSPC: 0
      filesystem: fsync time: 4771096
      filesystem: fsync count: 64
       
      Memory usage:
      Arena 0:
      system bytes     =          0
      in use bytes     =          0
      Total (incl. mmap):
      system bytes     =          0
      in use bytes     =          0
      max mmap regions =          0
      max mmap bytes   =          0
      131210 13:18:00 [ERROR] mysqld got signal 6 ;

      #5  0x00007f4e401116f0 in *__GI_abort () at abort.c:92
      #6  0x00007f4e1292ca20 in toku_do_backtrace_abort () at 10.0/storage/tokudb/ft-index/portability/toku_assert.cc:190
      #7  0x00007f4e1292cb0f in toku_do_assert_fail (expr_as_string=0x7f4e1298e3f0 "toku_ft_needed_unlocked(src_h)", function=0x7f4e1298ea10 "dictionary_redirect_internal", file=0x7f4e1298e0d0 "10.0/storage/tokudb/ft-index/ft/ft.cc", line=689, caller_errno=11) at 10.0/storage/tokudb/ft-index/portability/toku_assert.cc:211
      #8  0x00007f4e12902441 in dictionary_redirect_internal (dst_fname_in_env=0x7f4e14cd66a0 "./_test_t1_main_27_1_18_B_0.tokudb", src_h=0x7f4e14cbcaa0, txn=0x0, dst_hp=0x7f4dd9bfc490) at 10.0/storage/tokudb/ft-index/ft/ft.cc:689
      #9  0x00007f4e1290265c in toku_dictionary_redirect (dst_fname_in_env=0x7f4e14cd66a0 "./_test_t1_main_27_1_18_B_0.tokudb", old_ft_h=0x7f4e14d1c470, txn=0x0) at 10.0/storage/tokudb/ft-index/ft/ft.cc:786
      #10 0x00007f4e1290964a in ft_loader_close_and_redirect (loader=0x7f4e14cd6670) at 10.0/storage/tokudb/ft-index/src/loader.cc:221
      #11 0x00007f4e1290a406 in toku_loader_close (loader=0x7f4e14cd6670) at 10.0/storage/tokudb/ft-index/src/loader.cc:467
      #12 0x00007f4e12824f0a in ha_tokudb::end_bulk_insert (this=0x7f4e14c14088, abort=false) at 10.0/storage/tokudb/ha_tokudb.cc:3425
      #13 0x00007f4e12825329 in ha_tokudb::end_bulk_insert (this=0x7f4e14c14088) at 10.0/storage/tokudb/ha_tokudb.cc:3489
      #14 0x000000000064f5be in handler::ha_end_bulk_insert (this=0x7f4e14c14088) at 10.0/sql/handler.h:2628
      #15 0x000000000064d3d2 in select_insert::send_eof (this=0x7f4e1506aeb8) at 10.0/sql/sql_insert.cc:3690
      #16 0x00000000006c18c1 in do_select (join=0x7f4e1506af50, fields=0x7f4e1506b2e8, table=0x0, procedure=0x0) at 10.0/sql/sql_select.cc:17037
      #17 0x000000000069f1a2 in JOIN::exec_inner (this=0x7f4e1506af50) at 10.0/sql/sql_select.cc:3064
      #18 0x000000000069c6c6 in JOIN::exec (this=0x7f4e1506af50) at 10.0/sql/sql_select.cc:2354
      #19 0x000000000069fa35 in mysql_select (thd=0x7f4e1bb08070, rref_pointer_array=0x7f4e1bb0c688, tables=0x7f4e1506a890, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=3489925888, result=0x7f4e1506aeb8, unit=0x7f4e1bb0bd38, select_lex=0x7f4e1bb0c418) at 10.0/sql/sql_select.cc:3292
      #20 0x0000000000696123 in handle_select (thd=0x7f4e1bb08070, lex=0x7f4e1bb0bc78, result=0x7f4e1506aeb8, setup_tables_done_option=1073741824) at 10.0/sql/sql_select.cc:371
      #21 0x000000000066609e in mysql_execute_command (thd=0x7f4e1bb08070) at 10.0/sql/sql_parse.cc:3501
      #22 0x000000000066dd78 in mysql_parse (thd=0x7f4e1bb08070, rawbuf=0x7f4e1506a088 "INSERT INTO t1 SELECT * FROM t1", length=31, parser_state=0x7f4dd9bfd630) at 10.0/sql/sql_parse.cc:6365
      #23 0x0000000000660cba in dispatch_command (command=COM_QUERY, thd=0x7f4e1bb08070, packet=0x7f4e1b789071 "INSERT INTO t1 SELECT * FROM t1", packet_length=31) at 10.0/sql/sql_parse.cc:1296
      #24 0x000000000066005c in do_command (thd=0x7f4e1bb08070) at 10.0/sql/sql_parse.cc:993
      #25 0x0000000000777fb9 in do_handle_one_connection (thd_arg=0x7f4e1bb08070) at 10.0/sql/sql_connect.cc:1379
      #26 0x0000000000777d0c in handle_one_connection (arg=0x7f4e1bb08070) at 10.0/sql/sql_connect.cc:1293
      #27 0x0000000000a987cd in pfs_spawn_thread (arg=0x7f4e1bbe6e90) at 10.0/storage/perfschema/pfs.cc:1853
      #28 0x00007f4e41667b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
      #29 0x00007f4e401b6a7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

      revision-id: bar@mnogosearch.org-20131206150255-und2j89f85by7imn
      revno: 3915
      branch-nick: 10.0

      Attachments

        Activity

          Rich, could you please look whether it's TokuDB issue or something that should be fixed in MariaDB? Feel free to reassign it back to me, if needed.

          serg Sergei Golubchik added a comment - Rich, could you please look whether it's TokuDB issue or something that should be fixed in MariaDB? Feel free to reassign it back to me, if needed.
          prohaska7 Rich Prohaska added a comment -

          when processing the 'explain insert' command, ha_tokudb::start_bulk_insert is called but ha_tokudb::end_bulk_insert is not called. this left a tokudb 'loader' object in the ha_tokudb object. the 'insert' command from the other client uses the same ha_tokudb object and tries to close the 'loader' that was created in the context the first client's transaction.

          either
          1. and end_bulk_insert call is added to the 'explain insert' code, or
          2. tokudb cleans up the dangling loader somehow.

          prohaska7 Rich Prohaska added a comment - when processing the 'explain insert' command, ha_tokudb::start_bulk_insert is called but ha_tokudb::end_bulk_insert is not called. this left a tokudb 'loader' object in the ha_tokudb object. the 'insert' command from the other client uses the same ha_tokudb object and tries to close the 'loader' that was created in the context the first client's transaction. either 1. and end_bulk_insert call is added to the 'explain insert' code, or 2. tokudb cleans up the dangling loader somehow.

          Thanks!
          I believe it's our bug, then.

          For every start_bulk_insert() there always should be a matching end_bulk_insert().

          serg Sergei Golubchik added a comment - Thanks! I believe it's our bug, then. For every start_bulk_insert() there always should be a matching end_bulk_insert().

          I've got the following stack trace in another test. It looks similar, but there was no assertion, just a sig 11. Does anyone think that it might be a different issue which requires a separate investigation?

          #3 <signal handler called>
          #4 __pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50
          #5 0x00007f9d47481bf2 in toku_mutex_lock (mutex=0x5a5a5a5a5a5a5bca) at 10.0/storage/tokudb/ft-index/portability/toku_pthread.h:204
          #6 0x00007f9d474827c3 in toku_txn_lock (txn=0x5a5a5a5a5a5a5a5a) at 10.0/storage/tokudb/ft-index/ft/txn.cc:143
          #7 0x00007f9d474f404a in toku_txn_maybe_note_ft (txn=0x5a5a5a5a5a5a5a5a, ft=0x7f9d36ce11a0) at 10.0/storage/tokudb/ft-index/ft/rollback.cc:279
          #8 0x00007f9d47502644 in toku_dictionary_redirect (dst_fname_in_env=0x7f9d5613d900 "./_test_table_2_key_col_int_key_47e_1_18_B_0.tokudb", old_ft_h=0x7f9d5347d150, txn=0x5a5a5a5a5a5a5a5a) at 10.0/storage/tokudb/ft-index/ft/ft.cc:782
          #9 0x00007f9d4750964a in ft_loader_close_and_redirect (loader=0x7f9d562860d0) at 10.0/storage/tokudb/ft-index/src/loader.cc:221
          #10 0x00007f9d4750a406 in toku_loader_close (loader=0x7f9d562860d0) at 10.0/storage/tokudb/ft-index/src/loader.cc:467
          #11 0x00007f9d47424f0a in ha_tokudb::end_bulk_insert (this=0x7f9d50caf088, abort=false) at 10.0/storage/tokudb/ha_tokudb.cc:3425
          #12 0x00007f9d47425329 in ha_tokudb::end_bulk_insert (this=0x7f9d50caf088) at 10.0/storage/tokudb/ha_tokudb.cc:3489
          #13 0x00000000006332b4 in handler::ha_end_bulk_insert (this=0x7f9d50caf088) at 10.0/sql/handler.h:2628
          #14 0x0000000000630f74 in select_insert::send_eof (this=0x7f9d36971f78) at 10.0/sql/sql_insert.cc:3690
          #15 0x000000000069ac0c in return_zero_rows (join=0x7f9d36972010, result=0x7f9d36971f78, tables=..., fields=..., send_row=false, select_options=3490056960, info=0xfe430c "Impossible WHERE", having=0x0, all_fields=...) at 10.0/sql/sql_select.cc:11835
          #16 0x0000000000682a28 in JOIN::exec_inner (this=0x7f9d36972010) at 10.0/sql/sql_select.cc:2493
          #17 0x0000000000682146 in JOIN::exec (this=0x7f9d36972010) at 10.0/sql/sql_select.cc:2354
          #18 0x0000000000685709 in mysql_select (thd=0x7f9d57813070, rref_pointer_array=0x7f9d57817688, tables=0x7f9d369718b8, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=3489925888, result=0x7f9d36971f78, unit=0x7f9d57816d38, select_lex=0x7f9d57817418) at 10.0/sql/sql_select.cc:3292
          #19 0x000000000067bb20 in handle_select (thd=0x7f9d57813070, lex=0x7f9d57816c78, result=0x7f9d36971f78, setup_tables_done_option=1073741824) at 10.0/sql/sql_select.cc:371
          #20 0x000000000064a4d7 in mysql_execute_command (thd=0x7f9d57813070) at 10.0/sql/sql_parse.cc:3501
          #21 0x00000000006524ea in mysql_parse (thd=0x7f9d57813070, rawbuf=0x7f9d36971088 "INSERT INTO table_2 SELECT * FROM table_2 LIMIT 0", length=49, parser_state=0x7f9d781144b0) at 10.0/sql/sql_parse.cc:6365
          #22 0x0000000000644ef4 in dispatch_command (command=COM_QUERY, thd=0x7f9d57813070, packet=0x7f9d57829071 " INSERT INTO table_2 SELECT * FROM table_2 LIMIT 0", packet_length=50) at 10.0/sql/sql_parse.cc:1296
          #23 0x0000000000644242 in do_command (thd=0x7f9d57813070) at 10.0/sql/sql_parse.cc:993
          #24 0x0000000000763531 in do_handle_one_connection (thd_arg=0x7f9d57813070) at 10.0/sql/sql_connect.cc:1379
          #25 0x0000000000763284 in handle_one_connection (arg=0x7f9d57813070) at 10.0/sql/sql_connect.cc:1293
          #26 0x0000000000e4673f in pfs_spawn_thread (arg=0x7f9d57bfe350) at 10.0/storage/perfschema/pfs.cc:1853
          #27 0x00007f9d772dae9a in start_thread (arg=0x7f9d78115700) at pthread_create.c:308
          #28 0x00007f9d767f5cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

          elenst Elena Stepanova added a comment - I've got the following stack trace in another test. It looks similar, but there was no assertion, just a sig 11. Does anyone think that it might be a different issue which requires a separate investigation? #3 <signal handler called> #4 __pthread_mutex_lock (mutex=0x0) at pthread_mutex_lock.c:50 #5 0x00007f9d47481bf2 in toku_mutex_lock (mutex=0x5a5a5a5a5a5a5bca) at 10.0/storage/tokudb/ft-index/portability/toku_pthread.h:204 #6 0x00007f9d474827c3 in toku_txn_lock (txn=0x5a5a5a5a5a5a5a5a) at 10.0/storage/tokudb/ft-index/ft/txn.cc:143 #7 0x00007f9d474f404a in toku_txn_maybe_note_ft (txn=0x5a5a5a5a5a5a5a5a, ft=0x7f9d36ce11a0) at 10.0/storage/tokudb/ft-index/ft/rollback.cc:279 #8 0x00007f9d47502644 in toku_dictionary_redirect (dst_fname_in_env=0x7f9d5613d900 "./_test_table_2_key_col_int_key_47e_1_18_B_0.tokudb", old_ft_h=0x7f9d5347d150, txn=0x5a5a5a5a5a5a5a5a) at 10.0/storage/tokudb/ft-index/ft/ft.cc:782 #9 0x00007f9d4750964a in ft_loader_close_and_redirect (loader=0x7f9d562860d0) at 10.0/storage/tokudb/ft-index/src/loader.cc:221 #10 0x00007f9d4750a406 in toku_loader_close (loader=0x7f9d562860d0) at 10.0/storage/tokudb/ft-index/src/loader.cc:467 #11 0x00007f9d47424f0a in ha_tokudb::end_bulk_insert (this=0x7f9d50caf088, abort=false) at 10.0/storage/tokudb/ha_tokudb.cc:3425 #12 0x00007f9d47425329 in ha_tokudb::end_bulk_insert (this=0x7f9d50caf088) at 10.0/storage/tokudb/ha_tokudb.cc:3489 #13 0x00000000006332b4 in handler::ha_end_bulk_insert (this=0x7f9d50caf088) at 10.0/sql/handler.h:2628 #14 0x0000000000630f74 in select_insert::send_eof (this=0x7f9d36971f78) at 10.0/sql/sql_insert.cc:3690 #15 0x000000000069ac0c in return_zero_rows (join=0x7f9d36972010, result=0x7f9d36971f78, tables=..., fields=..., send_row=false, select_options=3490056960, info=0xfe430c "Impossible WHERE", having=0x0, all_fields=...) at 10.0/sql/sql_select.cc:11835 #16 0x0000000000682a28 in JOIN::exec_inner (this=0x7f9d36972010) at 10.0/sql/sql_select.cc:2493 #17 0x0000000000682146 in JOIN::exec (this=0x7f9d36972010) at 10.0/sql/sql_select.cc:2354 #18 0x0000000000685709 in mysql_select (thd=0x7f9d57813070, rref_pointer_array=0x7f9d57817688, tables=0x7f9d369718b8, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=3489925888, result=0x7f9d36971f78, unit=0x7f9d57816d38, select_lex=0x7f9d57817418) at 10.0/sql/sql_select.cc:3292 #19 0x000000000067bb20 in handle_select (thd=0x7f9d57813070, lex=0x7f9d57816c78, result=0x7f9d36971f78, setup_tables_done_option=1073741824) at 10.0/sql/sql_select.cc:371 #20 0x000000000064a4d7 in mysql_execute_command (thd=0x7f9d57813070) at 10.0/sql/sql_parse.cc:3501 #21 0x00000000006524ea in mysql_parse (thd=0x7f9d57813070, rawbuf=0x7f9d36971088 "INSERT INTO table_2 SELECT * FROM table_2 LIMIT 0", length=49, parser_state=0x7f9d781144b0) at 10.0/sql/sql_parse.cc:6365 #22 0x0000000000644ef4 in dispatch_command (command=COM_QUERY, thd=0x7f9d57813070, packet=0x7f9d57829071 " INSERT INTO table_2 SELECT * FROM table_2 LIMIT 0", packet_length=50) at 10.0/sql/sql_parse.cc:1296 #23 0x0000000000644242 in do_command (thd=0x7f9d57813070) at 10.0/sql/sql_parse.cc:993 #24 0x0000000000763531 in do_handle_one_connection (thd_arg=0x7f9d57813070) at 10.0/sql/sql_connect.cc:1379 #25 0x0000000000763284 in handle_one_connection (arg=0x7f9d57813070) at 10.0/sql/sql_connect.cc:1293 #26 0x0000000000e4673f in pfs_spawn_thread (arg=0x7f9d57bfe350) at 10.0/storage/perfschema/pfs.cc:1853 #27 0x00007f9d772dae9a in start_thread (arg=0x7f9d78115700) at pthread_create.c:308 #28 0x00007f9d767f5cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
          prohaska7 Rich Prohaska added a comment -

          This crash was probably caused by a txn pointer held by the tokudb loader and used after the txn object was freed. This crash can be explained by a missing end_bulk_insert on a previous operation.

          prohaska7 Rich Prohaska added a comment - This crash was probably caused by a txn pointer held by the tokudb loader and used after the txn object was freed. This crash can be explained by a missing end_bulk_insert on a previous operation.

          Pushed a fix. The testcase is currently at storage/tokudb/mysql-test/tokudb_mariadb/t/mdev5426.test . There is a discussion at maria-developers@ about whether it should be moved somewhere else

          psergei Sergei Petrunia added a comment - Pushed a fix. The testcase is currently at storage/tokudb/mysql-test/tokudb_mariadb/t/mdev5426.test . There is a discussion at maria-developers@ about whether it should be moved somewhere else

          People

            psergei Sergei Petrunia
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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