[MDEV-5396] Assertion `Handlerton: r==0 ' failed (errno=0) on EXPLAIN with TokuDB tables Created: 2013-12-05  Updated: 2014-01-29  Resolved: 2013-12-18

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.34, 10.0.6
Fix Version/s: 5.5.35, 10.0.8

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: tokudb

Issue Links:
Relates

 Description   

Engine status:
BUILD_ID = 0
Env panic code: 18446744073709551615
Env panic string: 5.5/storage/tokudb/ha_tokudb.cc:4684 index_end: Assertion `Handlerton: r==0 ' failed (errno=0)
 
time of environment creation: Thu Dec  5 21:16:55 2013
time of engine startup: Thu Dec  5 21:16:53 2013
time now: Thu Dec  5 21:17:04 2013
db opens: 15
db closes: 7
num open dbs now: 8
max open dbs: 8
period, in ms, that recovery log is automatically fsynced: 0
dictionary inserts: 31
dictionary inserts fail: 0
dictionary deletes: 0
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: 1
le: max provisional xr: 2
le: expanded: 0
le: max memsize: 8576
checkpoint: period: 60
checkpoint: footprint: 0
checkpoint: last checkpoint began : Thu Dec  5 21:16:55 2013
checkpoint: last complete checkpoint began : Thu Dec  5 21:16:55 2013
checkpoint: last complete checkpoint ended: Thu Dec  5 21:16:55 2013
checkpoint: last complete checkpoint LSN: 8
checkpoint: checkpoints taken : 1
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
checkpoint: checkpoint begin time: 37
checkpoint: long checkpoint begin time: 0
checkpoint: long checkpoint begin count: 0
cachetable: miss: 1
cachetable: miss time: 87
cachetable: prefetches: 0
cachetable: size current: 109112
cachetable: size limit: 4617302835
cachetable: size writing: 0
cachetable: size nonleaf: 5144
cachetable: size leaf: 103728
cachetable: size rollback: 240
cachetable: size cachepressure: 4912
cachetable: evictions: 4
cachetable: cleaner executions: 10
cachetable: cleaner period: 1
cachetable: cleaner iterations: 5
cachetable: number of waits on cache pressure: 0
cachetable: time waiting on cache pressure: 0
cachetable: number of long waits on cache pressure: 0
cachetable: long time waiting on cache pressure: 0
locktree: memory size: 0
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: 10
locktree: number of pending lock requests: 0
locktree: number of locktrees eligible for the STO: 0
locktree: number of times a locktree ended the STO early: 0
locktree: time spent ending the STO early (seconds): 0.000000
locktree: number of wait locks: 0
locktree: time waiting for locks: 0
locktree: number of long wait locks: 0
locktree: long time waiting for locks: 0
locktree: number of lock timeouts: 0
locktree: number of waits on lock escalation: 0
locktree: time waiting on lock escalation: 0
locktree: number of long waits on lock escalation: 0
locktree: long time waiting on lock escalation: 0
brt: dictionary updates: 0
brt: dictionary broadcast updates: 0
brt: descriptor set: 4
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): 9
brt: leaf nodes flushed to disk (not for checkpoint) (bytes): 4608
brt: leaf nodes flushed to disk (not for checkpoint) (uncompressed bytes): 26883
brt: leaf nodes flushed to disk (not for checkpoint) (seconds): 0.000136
brt: nonleaf nodes flushed to disk (not for checkpoint): 1
brt: nonleaf nodes flushed to disk (not for checkpoint) (bytes): 512
brt: nonleaf nodes flushed to disk (not for checkpoint) (uncompressed bytes): 212
brt: nonleaf nodes flushed to disk (not for checkpoint) (seconds): 0.000012
brt: leaf nodes flushed to disk (for checkpoint): 3
brt: leaf nodes flushed to disk (for checkpoint) (bytes): 1536
brt: leaf nodes flushed to disk (for checkpoint) (uncompressed bytes): 393
brt: leaf nodes flushed to disk (for checkpoint) (seconds): 0.000019
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: 4
brt: leaf node full evictions (bytes): 1024
brt: nonleaf node full evictions: 0
brt: nonleaf node full evictions (bytes): 0
brt: leaf nodes created: 17
brt: nonleaf nodes created: 1
brt: leaf nodes destroyed: 11
brt: nonleaf nodes destroyed: 0
brt: bytes of messages injected at root (all trees): 37
brt: bytes of messages flushed from h1 nodes to leaves: 0
brt: bytes of messages currently in trees (estimate): 37
brt: messages injected at root: 1
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.010213
brt: leaf serialization to memory (seconds): 0.000371
brt: leaf decompression to memory (seconds): 0.000011
brt: leaf deserialization to memory (seconds): 0.000033
brt: nonleaf compression to memory (seconds): 0.005504
brt: nonleaf serialization to memory (seconds): 0.000045
brt: nonleaf decompression to memory (seconds): 0.000000
brt: nonleaf deserialization to memory (seconds): 0.000000
brt: promotion: roots split: 1
brt: promotion: leaf roots injected into: 30
brt: promotion: h1 roots injected into: 0
brt: promotion: injections at depth 0: 1
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: 1
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: 2
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: 41
txn: begin read only: 1
txn: successful commits: 35
txn: aborts: 7
logger: next LSN: 112
logger: writes: 26
logger: writes (bytes): 32647
logger: writes (uncompressed bytes): 32647
logger: writes (seconds): 0.000696
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: 3
loader: number of calls to toku_loader_create_loader() that failed: 0
loader: number of calls to loader->put() succeeded: 6
loader: number of calls to loader->put() failed: 0
loader: number of calls to loader->close() that succeeded: 3
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: 1
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: 8608201
filesystem: fsync count: 72
filesystem: long fsync time: 0
filesystem: long fsync count: 0
 
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
131205 21:17:04 [ERROR] mysqld got signal 6 ;

#5  0x00007f47f7ca16f0 in *__GI_abort () at abort.c:92
#6  0x00007f47f312a9c0 in toku_do_backtrace_abort () at 5.5/storage/tokudb/ft-index/portability/toku_assert.cc:191
#7  0x00007f47f312aaaf in toku_do_assert_fail (expr_as_string=0x7f47f95c3560 "Handlerton: r==0 ", function=0x7f47f316c5f4 "index_end", file=0x7f47f31671c8 "5.5/storage/tokudb/ha_tokudb.cc", line=4684, caller_errno=0) at 5.5/storage/tokudb/ft-index/portability/toku_assert.cc:212
#8  0x00007f47f304b6d5 in env_crash (db_env=0x7f47f744f100, msg=0x7f47f95c3560 "Handlerton: r==0 ", fun=0x7f47f316c5f4 "index_end", file=0x7f47f31671c8 "5.5/storage/tokudb/ha_tokudb.cc", line=4684, caller_errno=0) at 5.5/storage/tokudb/ft-index/src/ydb.cc:2236
#9  0x00007f47f303a35f in toku_hton_assert_fail (expr_as_string=0x7f47f316747c "r==0", fun=0x7f47f316c5f4 "index_end", file=0x7f47f31671c8 "5.5/storage/tokudb/ha_tokudb.cc", line=4684, caller_errno=0) at 5.5/storage/tokudb/hatoku_hton.cc:193
#10 0x00007f47f3022cbc in ha_tokudb::index_end (this=0x7f47e1e40078) at 5.5/storage/tokudb/ha_tokudb.cc:4684
#11 0x00000000005c91f9 in handler::ha_index_end (this=0x7f47e1e40078) at 5.5/sql/handler.h:1867
#12 0x00000000006100b7 in handler::ha_index_or_rnd_end (this=0x7f47e1e40078) at 5.5/sql/handler.h:1911
#13 0x00000000006785e8 in st_join_table::cleanup (this=0x7f47e1e98078) at 5.5/sql/sql_select.cc:10417
#14 0x0000000000679329 in JOIN::cleanup (this=0x7f47e1ce0988, full=true) at 5.5/sql/sql_select.cc:10819
#15 0x00000000006655d5 in JOIN::destroy (this=0x7f47e1ce0988) at 5.5/sql/sql_select.cc:2920
#16 0x00000000006dfef7 in st_select_lex::cleanup (this=0x7f47e1e95078) at 5.5/sql/sql_union.cc:995
#17 0x00000000006dfacd in st_select_lex_unit::cleanup (this=0x7f47e1e953d0) at 5.5/sql/sql_union.cc:860
#18 0x00000000006dff51 in st_select_lex::cleanup (this=0x7f47f37d2a50) at 5.5/sql/sql_union.cc:1002
#19 0x00000000006dfacd in st_select_lex_unit::cleanup (this=0x7f47f37d2378) at 5.5/sql/sql_union.cc:860
#20 0x00000000006359b2 in mysql_execute_command (thd=0x7f47f37cf060) at 5.5/sql/sql_parse.cc:4578
#21 0x0000000000638622 in mysql_parse (thd=0x7f47f37cf060, rawbuf=0x7f47e1d2f078 "EXPLAIN SELECT * FROM t1\nWHERE a IN ( SELECT b FROM t2 ) OR ( 'qux' ) IN ( SELECT c FROM t3 )", length=93, parser_state=0x7f47f95c4630) at 5.5/sql/sql_parse.cc:5798
#22 0x000000000062c643 in dispatch_command (command=COM_QUERY, thd=0x7f47f37cf060, packet=0x7f47f3770061 "", packet_length=93) at 5.5/sql/sql_parse.cc:1078
#23 0x000000000062b7e6 in do_command (thd=0x7f47f37cf060) at 5.5/sql/sql_parse.cc:793
#24 0x000000000072ce2a in do_handle_one_connection (thd_arg=0x7f47f37cf060) at 5.5/sql/sql_connect.cc:1266
#25 0x000000000072c8e9 in handle_one_connection (arg=0x7f47f37cf060) at 5.5/sql/sql_connect.cc:1181
#26 0x0000000000984bd1 in pfs_spawn_thread (arg=0x7f47f36862a0) at 5.5/storage/perfschema/pfs.cc:1015
#27 0x00007f47f91f7b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#28 0x00007f47f7d46a7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

revision-id: monty@askmonty.org-20131202202243-4cmcfmthkyggmpw5
revno: 3993
branch-nick: 5.5

Couldn't reproduce on mariadb-5.5.30-tokudb-7.1.0.

Test case (to be run with TokuDB enabled):

 
SET NAMES latin1;
 
CREATE TABLE t1 (a INT) ENGINE=TokuDB;
INSERT INTO t1 VALUES (1),(2);
 
CREATE TABLE t2 (b INT) ENGINE=TokuDB;
INSERT INTO t2 VALUES (3),(4);
 
CREATE TABLE t3 (c VARCHAR(3), INDEX(c)) ENGINE=TokuDB;
INSERT INTO t3 VALUES ('foo'),('bar');
 
EXPLAIN SELECT * FROM t1
WHERE a IN ( SELECT b FROM t2 ) OR ( 'qux' ) IN ( SELECT c FROM t3 );



 Comments   
Comment by Elena Stepanova [ 2013-12-06 ]

Also a somewhat different test case which causes the same assertion failure:

CREATE TABLE t1 (a VARCHAR(8), INDEX(a)) ENGINE=TokuDB;
INSERT INTO t1 VALUES ('foo'),('bar');

CREATE TABLE t2 AS SELECT ( 'qux' ) IN ( SELECT a FROM t1 ) AS f1;

Comment by Rich Prohaska [ 2013-12-06 ]

Both of these examples crash because TokuDB can not handle index_end getting called after the transaction is committed. Here is a trace in which external_lock creates the txn, index_init creates a db cursor with the txn (not shown), index_read uses the cursor, the txn is committed, and then index_end is called (too late so tokudb hits the assert).

2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6127:ha_tokudb::external_lock cmd=0 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/hatoku_defines.h:358:begin txn (nil) 0x7fffe48ec600 268435460 r=0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6101:just created stmt (nil) 0x7fffe48ec600
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6196:external_lock:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6127:ha_tokudb::external_lock cmd=0 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6196:external_lock:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6127:ha_tokudb::external_lock cmd=0 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:6196:external_lock:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5821:ha_tokudb::info 0x7fffe493f078 18 2
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5951:info:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7213:ha_tokudb::scan_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7213:ha_tokudb::scan_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7220:ha_tokudb::keyread_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5958:extra 0x7fffe493f078 7
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5978:extra:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4468:ha_tokudb::index_init 0x7fffe493f078 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4531:index_init:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4785:ha_tokudb::index_read 0x7fffe493f078 find 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:2799:ha_tokudb::pack_key
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4568:ha_tokudb::handle_cursor_error
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4579:handle_cursor_error:return 120
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4875:error:120:0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4881:index_read:return 120
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5821:ha_tokudb::info 0x7fffe4911078 18 2
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5951:info:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7213:ha_tokudb::scan_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7213:ha_tokudb::scan_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5821:ha_tokudb::info 0x7fffe4882078 18 2
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5951:info:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7213:ha_tokudb::scan_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:7213:ha_tokudb::scan_time
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/hatoku_hton.cc:648:tokudb_commit
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/hatoku_hton.cc:656:commit 0 0x7fffe48ec600
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/hatoku_hton.cc:673:tokudb_commit:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5958:extra 0x7fffe4911078 4
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5978:extra:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5958:extra 0x7fffe493f078 8
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:5978:extra:return 0
2411:/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4538:ha_tokudb::index_end 0x7fffe493f078
131206 7:29:24 [ERROR] TokuDB: toku_c_close: Transaction cannot do work when child exists

/home/prohaska/ma5534/mariadb/storage/tokudb/ha_tokudb.cc:4543 index_end: Assertion `Handlerton: r==0 ' failed (errno=0)

Comment by Rich Prohaska [ 2013-12-06 ]

if the storage engine is expected to handle index_end after the transaction commits, then tokudb will have to maintain a list of handler's that need to be cleaned up when a transaction commit occurs. is this the case?

Comment by Sergei Golubchik [ 2013-12-06 ]

No, wait. At the moment I am thinking that it is not the case and that commit should never happen in the middle of the index scan.

I'll know more soon.

Comment by Rich Prohaska [ 2013-12-06 ]

it looks like join cleanup happens too late.

Comment by Rich Prohaska [ 2013-12-09 ]

we are testing this change: https://github.com/Tokutek/ft-engine/commit/d9edc3fb2db4436636627bbeabae7a3cbed3bae3

Comment by Sergei Golubchik [ 2013-12-11 ]

Sergei, could you please review the attached bug fix? Thanks.

Comment by Sergei Petrunia [ 2013-12-17 ]

Ok to push.

Comment by Daniel Bartholomew [ 2014-01-29 ]

http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4008

Generated at Thu Feb 08 07:04:05 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.