|
also on 10.5:
|
10.5 7803601dcb8e40746a1
|
|
/10.5/storage/rocksdb/rocksdb/db/compaction/compaction_iterator.cc:350: void rocksdb::CompactionIterator::NextFromInput(): Assertion `ikey_.type == kTypeValue' failed.
|
200616 15:11:34 [ERROR] mysqld got signal 6 ;
|
|
Server version: 10.5.4-MariaDB-debug-log
|
|
linux/raise.c:51(__GI_raise)[0x7f03f66c6535]
|
stdlib/abort.c:81(__GI_abort)[0x7f03f66c640f]
|
intl/loadmsgcat.c:1177(_nl_load_domain)[0x7f03f66d4102]
|
compaction/compaction_iterator.cc:351(rocksdb::CompactionIterator::NextFromInput())[0x7f03eb0aa32e]
|
compaction/compaction_iterator.cc:177(rocksdb::CompactionIterator::Next())[0x7f03eb0a4e7c]
|
compaction/compaction_job.cc:960(rocksdb::CompactionJob::ProcessKeyValueCompaction(rocksdb::CompactionJob::SubcompactionState*))[0x7f03ea8f8f8d]
|
compaction/compaction_job.cc:590(rocksdb::CompactionJob::Run())[0x7f03ea8f3674]
|
db_impl/db_impl_compaction_flush.cc:2770(rocksdb::DBImpl::BackgroundCompaction(bool*, rocksdb::JobContext*, rocksdb::LogBuffer*, rocksdb::DBImpl::PrepickedCompaction*, rocksdb::Env::Priority))[0x7f03ea8efe44]
|
db_impl/db_impl_compaction_flush.cc:2323(rocksdb::DBImpl::BackgroundCallCompaction(rocksdb::DBImpl::PrepickedCompaction*, rocksdb::Env::Priority))[0x7f03eaef2027]
|
db_impl/db_impl_compaction_flush.cc:2100(rocksdb::DBImpl::BGWorkCompaction(void*))[0x7f03eaef17c3]
|
bits/invoke.h:60(void std::__invoke_impl<void, void (*&)(void*), void*&>(std::__invoke_other, void (*&)(void*), void*&))[0x7f03eaef037a]
|
bits/invoke.h:96(std::__invoke_result<void (*&)(void*), void*&>::type std::__invoke<void (*&)(void*), void*&>(void (*&)(void*), void*&))[0x7f03eaeee2c1]
|
8/functional:480(void std::_Bind<void (*(void*))(void*)>::operator()<, void>())[0x7f03eaeeb783]
|
bits/std_function.h:299(std::_Function_handler<void (), std::_Bind<void (*(void*))(void*)> >::_M_invoke(std::_Any_data const&))[0x7f03ea61add6]
|
bits/std_function.h:687(std::function<void ()>::operator()() const)[0x7f03eaee81b2]
|
util/threadpool_imp.cc:222(rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long))[0x7f03eaef2ccf]
|
util/threadpool_imp.cc:308(rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*))[0x7f03eaef2c41]
|
bits/invoke.h:60(void std::__invoke_impl<void, void (*)(void*), rocksdb::BGThreadMetadata*>(std::__invoke_other, void (*&&)(void*), rocksdb::BGThreadMetadata*&&))[0x7f03eaef2bb0]
|
??:0(std::error_code::default_error_condition() const)[0x7f03f6abfb2f]
|
nptl/pthread_create.c:487(start_thread)[0x7f03f7196fa3]
|
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f03f679d4cf]
|
|
|
A new test case. It is even worse than the previous one in terms of probability, but it fails eventually if it's given enough time. I can't make it any better as the test case itself doesn't contain any concurrency, whatever causes non-determinism is in the internals.
Run with --mysqld=--plugin-load-add=ha_rocksdb and as big --repeat=N as possible, at least hundreds, it's highly volatile. On the bright side, the test case is rr-rable (although it takes even longer).
--source include/have_partition.inc
|
--source include/have_sequence.inc
|
|
CREATE TABLE t1 (
|
pk INTEGER AUTO_INCREMENT,
|
a INT,
|
b INT,
|
c DATE,
|
d DATE,
|
e TIME,
|
f TIME,
|
g DATETIME,
|
h DATETIME,
|
i VARCHAR(1),
|
j VARCHAR(1),
|
PRIMARY KEY (pk),
|
KEY (b),
|
KEY (i, b)
|
) ENGINE=RocksDB;
|
|
CREATE TABLE t3 LIKE t1;
|
CREATE TABLE t5 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t4 LIKE t1;
|
|
INSERT INTO t5 (pk) SELECT NULL FROM seq_1_to_500;
|
INSERT INTO t4 (pk) SELECT NULL FROM seq_1_to_100;
|
|
REPLACE INTO t1 SELECT * FROM t5;
|
ALTER TABLE t1 PARTITION BY KEY(pk);
|
START TRANSACTION;
|
INSERT INTO t3 (pk) VALUES (NULL);
|
|
--connect (con1,localhost,root,,test)
|
CREATE TABLE t6 ENGINE=RocksDB SELECT * FROM t4;
|
DELETE FROM t1 WHERE pk IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19);
|
ALTER TABLE t2 PARTITION BY KEY() PARTITIONS 2;
|
REPLACE INTO t1 SELECT * FROM t5;
|
CREATE TABLE t7 ENGINE=RocksDB SELECT * FROM t5;
|
DROP TABLE t7;
|
|
DELETE FROM t1 WHERE pk = 2;
|
ALTER TABLE t1 REMOVE PARTITIONING;
|
CREATE TABLE t8 ENGINE=RocksDB SELECT * FROM t5;
|
DROP TABLE t8;
|
|
# Seems necessary, maybe to allow the compaction start
|
--sleep 1
|
|
# Cleanup
|
--connection default
|
COMMIT;
|
DROP TABLE t6, t5, t4, t3, t2, t1;
|
|
10.4 e4043152
|
#2 0x00007f643631740f in __assert_fail_base (fmt=0x7f6436480128 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f642bd0cda2 "ikey_.type == kTypeValue",
|
file=0x7f642bd0cbc0 "/data/src/10.4/storage/rocksdb/rocksdb/db/compaction/compaction_iterator.cc", line=350, function=<optimized out>) at assert.c:92
|
#3 0x00007f6436326662 in __GI___assert_fail (assertion=0x7f642bd0cda2 "ikey_.type == kTypeValue",
|
file=0x7f642bd0cbc0 "/data/src/10.4/storage/rocksdb/rocksdb/db/compaction/compaction_iterator.cc", line=350,
|
function=0x7f642bd0cd08 "void rocksdb::CompactionIterator::NextFromInput()") at assert.c:101
|
#4 0x00007f642bbc8827 in rocksdb::CompactionIterator::NextFromInput (this=0x7f641c003180) at /data/src/10.4/storage/rocksdb/rocksdb/db/compaction/compaction_iterator.cc:350
|
#5 0x00007f642bbc7cdc in rocksdb::CompactionIterator::Next (this=0x7f641c003180) at /data/src/10.4/storage/rocksdb/rocksdb/db/compaction/compaction_iterator.cc:174
|
#6 0x00007f642bbdafb3 in rocksdb::CompactionJob::ProcessKeyValueCompaction (this=0x7f642ad1f710, sub_compact=0x7f641c001500)
|
at /data/src/10.4/storage/rocksdb/rocksdb/db/compaction/compaction_job.cc:959
|
#7 0x00007f642bbd8b14 in rocksdb::CompactionJob::Run (this=0x7f642ad1f710) at /data/src/10.4/storage/rocksdb/rocksdb/db/compaction/compaction_job.cc:587
|
#8 0x00007f642b8b2877 in rocksdb::DBImpl::BackgroundCompaction (this=0x55d633c2b280, made_progress=0x7f642ad1fede, job_context=0x7f642ad1ff40, log_buffer=0x7f642ad20110,
|
prepicked_compaction=0x7f6423ae3890, thread_pri=rocksdb::Env::LOW) at /data/src/10.4/storage/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc:2770
|
#9 0x00007f642b8afa71 in rocksdb::DBImpl::BackgroundCallCompaction (this=0x55d633c2b280, prepicked_compaction=0x7f6423ae3890, bg_thread_pri=rocksdb::Env::LOW)
|
at /data/src/10.4/storage/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc:2323
|
#10 0x00007f642b8ae1a5 in rocksdb::DBImpl::BGWorkCompaction (arg=0x7f64208a9f40) at /data/src/10.4/storage/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc:2098
|
#11 0x00007f642bb1b15c in std::__invoke_impl<void, void (*&)(void*), void*&> (__f=@0x7f64044f4ce0: 0x7f642b8ae0cc <rocksdb::DBImpl::BGWorkCompaction(void*)>)
|
at /usr/include/c++/10/bits/invoke.h:60
|
#12 0x00007f642bb1adeb in std::__invoke<void (*&)(void*), void*&> (__fn=@0x7f64044f4ce0: 0x7f642b8ae0cc <rocksdb::DBImpl::BGWorkCompaction(void*)>)
|
at /usr/include/c++/10/bits/invoke.h:95
|
#13 0x00007f642bb1a6ea in std::_Bind<void (*(void*))(void*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7f64044f4ce0, __args=...)
|
at /usr/include/c++/10/functional:416
|
#14 0x00007f642bb19efa in std::_Bind<void (*(void*))(void*)>::operator()<, void>() (this=0x7f64044f4ce0) at /usr/include/c++/10/functional:499
|
#15 0x00007f642bb196b4 in std::__invoke_impl<void, std::_Bind<void (*(void*))(void*)>&>(std::__invoke_other, std::_Bind<void (*(void*))(void*)>&) (__f=...)
|
at /usr/include/c++/10/bits/invoke.h:60
|
#16 0x00007f642bb1897f in std::__invoke_r<void, std::_Bind<void (*(void*))(void*)>&>(std::_Bind<void (*(void*))(void*)>&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:153
|
#17 0x00007f642bb1788b in std::_Function_handler<void (), std::_Bind<void (*(void*))(void*)> >::_M_invoke(std::_Any_data const&) (__functor=...)
|
at /usr/include/c++/10/bits/std_function.h:291
|
#18 0x00007f642b77a40e in std::function<void ()>::operator()() const (this=0x7f642ad20c40) at /usr/include/c++/10/bits/std_function.h:622
|
#19 0x00007f642bb13ac4 in rocksdb::ThreadPoolImpl::Impl::BGThread (this=0x55d633bc69a0, thread_id=0) at /data/src/10.4/storage/rocksdb/rocksdb/util/threadpool_imp.cc:265
|
#20 0x00007f642bb13c3f in rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper (arg=0x55d633c26540) at /data/src/10.4/storage/rocksdb/rocksdb/util/threadpool_imp.cc:306
|
#21 0x00007f642bb1b6a6 in std::__invoke_impl<void, void (*)(void*), rocksdb::BGThreadMetadata*> (
|
__f=@0x55d633c265d0: 0x7f642bb13b32 <rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*)>) at /usr/include/c++/10/bits/invoke.h:60
|
#22 0x00007f642bb1b61b in std::__invoke<void (*)(void*), rocksdb::BGThreadMetadata*> (
|
__fn=@0x55d633c265d0: 0x7f642bb13b32 <rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*)>) at /usr/include/c++/10/bits/invoke.h:95
|
#23 0x00007f642bb1b58b in std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> >::_M_invoke<0ul, 1ul> (this=0x55d633c265c8)
|
at /usr/include/c++/10/thread:264
|
#24 0x00007f642bb1b544 in std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> >::operator() (this=0x55d633c265c8) at /usr/include/c++/10/thread:271
|
#25 0x00007f642bb1b528 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> > >::_M_run (this=0x55d633c265c0)
|
at /usr/include/c++/10/thread:215
|
#26 0x00007f64366e3ed0 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
|
--Type <RET> for more, q to quit, c to continue without paging--
|
#27 0x00007f64367f0ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
|
#28 0x00007f64363efdef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
While the failure itself doesn't go anywhere, changes in DDL/locking/whatever make the server-side behavior change with time. This test case also seem to be failing somewhat more willingly on 10.3-10.4, less willingly on 10.5-10.6, and very reluctantly on higher versions. Hopefully the problem will be fixed before this test case expires, too.
|