Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rocksdb crash on overwrite file #9

Closed
cocalele opened this issue Oct 19, 2022 · 0 comments
Closed

rocksdb crash on overwrite file #9

cocalele opened this issue Oct 19, 2022 · 0 comments

Comments

@cocalele
Copy link
Owner

can reproduce by steps:
date > /mnt/f1.txt, where f1.txt is an existed file before mount
umout /mnt
Ctrl-C to stop ganesha, during the last stage of ganesha exit, it crashed.

call stack is:

#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1 0x00007f089b4b2864 in __GI_abort () at abort.c:79
#2 0x00007f089b4b2749 in __assert_fail_base (fmt=0x7f089b63e458 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f089926504c "operand_list.size() >= 2", file=0x7f08992
65037 "db/merge_operator.cc", line=33, function=) at assert.c:92
#3 0x00007f089b4c4a96 in __GI___assert_fail (assertion=0x7f089926504c "operand_list.size() >= 2", file=0x7f0899265037 "db/merge_operator.cc", line=33, function=0x7f0899264fa0 "
virtual bool rocksdb::MergeOperator::PartialMergeMulti(const rocksdb::Slice&, const std::dequerocksdb::Slice&, std::string*, rocksdb::Logger*) const") at assert.c:101
#4 0x00007f0898ce3ff2 in rocksdb::MergeOperator::PartialMergeMulti (this=0x563f693d6a50, key=..., operand_list=std::deque with 1 element = {...}, new_value=0x7f08697f5210, logg
er=0x0) at db/merge_operator.cc:33
#5 0x00007f0898ce0456 in rocksdb::MergeHelper::MergeUntil (this=0x7f08697f57f0, iter=0x7f08697f5e40, range_del_agg=0x7f08400019b0, stop_before=0, at_bottom=false, allow_data_in
_errors=false, blob_fetcher=0x0, prefetch_buffers=0x0, c_iter_stats=0x7f08697f6248) at db/merge_helper.cc:394
#6 0x00007f0898af3d20 in rocksdb::CompactionIterator::NextFromInput (this=0x7f08697f5e40) at db/compaction/compaction_iterator.cc:850
#7 0x00007f0898af145e in rocksdb::CompactionIterator::SeekToFirst (this=0x7f08697f5e40) at db/compaction/compaction_iterator.cc:146
#8 0x00007f0898a86ccc in rocksdb::BuildTable (dbname="/vivenas_a", versions=0x563f693ff5a0, db_options=..., tboptions=..., file_options=..., table_cache=0x563f69412120, iter=0x
7f08697f6840, range_del_iters=std::vector of length 0, capacity 0, meta=0x7f08697f7d28, blob_file_additions=0x7f08697f6550, snapshots=std::vector of length 0, capacity 0, earlie
st_write_conflict_snapshot=72057594037927935, snapshot_checker=0x0, paranoid_file_checks=false, internal_stats=0x563f69640470, io_status=0x7f08697f65b0, io_tracer=std::shared_pt
r (use count 33, weak count 0) = {...}, blob_creation_reason=rocksdb::BlobFileCreationReason::kFlush, event_logger=0x563f693de110, job_id=3, io_priority
=rocksdb::Env::IO_HIGH, table_properties=0x7f08697f7a80, write_hint=rocksdb::Env::WLTH_MEDIUM, full_history_ts_low=0x0, blob_callback=0x563f693df130, num_input_entries=0x7f08697
f64c0, memtable_payload_bytes=0x7f08697f64c8, memtable_garbage_bytes=0x7f08697f64d0) at db/builder.cc:201
#9 0x00007f0898c89a14 in rocksdb::FlushJob::WriteLevel0Table (this=0x7f08697f7910) at db/flush_job.cc:897
#10 0x00007f0898c85f6e in rocksdb::FlushJob::Run (this=0x7f08697f7910, prep_tracker=0x563f693defb0, file_meta=0x7f08697f73e0, switched_to_mempurge=0x7f08697f730d) at db/flush_jo
b.cc:265
#11 0x00007f0898bcc47c in rocksdb::DBImpl::FlushMemTableToOutputFile (this=0x563f693dd8c0, cfd=0x563f6963fa40, mutable_cf_options=..., made_progress=0x7f08697f8713, job_context=
0x7f08697f8770, superversion_context=0x7f08400012d0, snapshot_seqs=std::vector of length 0, capacity 0, earliest_write_conflict_snapshot=72057594037927935, snapshot_checker=0x0,
log_buffer=0x7f08697f8970, thread_pri=rocksdb::Env::HIGH) at db/db_impl/db_impl_compaction_flush.cc:232
#12 0x00007f0898bcce76 in rocksdb::DBImpl::FlushMemTablesToOutputFiles (this=0x563f693dd8c0, bg_flush_args=..., made_progress=0x7f08697f8713, job_context=0x7f08697f8770, log_buf
fer=0x7f08697f8970, thread_pri=rocksdb::Env::HIGH) at db/db_impl/db_impl_compaction_flush.cc:362
#13 0x00007f0898bdacc5 in rocksdb::DBImpl::BackgroundFlush (this=0x563f693dd8c0, made_progress=0x7f08697f8713, job_context=0x7f08697f8770, log_buffer=0x7f08697f8970, reason=0x7f08697f8714, thread_pri=rocksdb::Env::HIGH) at db/db_impl/db_impl_compaction_flush.cc:2731
#14 0x00007f0898bdb1fe in rocksdb::DBImpl::BackgroundCallFlush (this=0x563f693dd8c0, thread_pri=rocksdb::Env::HIGH) at db/db_impl/db_impl_compaction_flush.cc:2771
#15 0x00007f0898bda36a in rocksdb::DBImpl::BGWorkFlush (arg=0x563f69438fe0) at db/db_impl/db_impl_compaction_flush.cc:2597
#16 0x00007f0899070ce3 in std::__invoke_impl<void, void (&)(void), void*&> (__f=@0x563f69510210: 0x7f0898bda2e8 rocksdb::DBImpl::BGWorkFlush(void*)) at /usr/include/c++/9/bi
ts/invoke.h:60
#17 0x00007f089907077e in std::__invoke<void (&)(void), void*&> (__fn=@0x563f69510210: 0x7f0898bda2e8 rocksdb::DBImpl::BGWorkFlush(void*)) at /usr/include/c++/9/bits/invoke.
h:95
#18 0x00007f089906fdb5 in std::_Bind<void ((void))(void*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x563f69510210, __args=...) at /usr/include/c++/9
/functional:400
#19 0x00007f089906ef0b in std::_Bind<void ((void))(void*)>::operator()<, void>() (this=0x563f69510210) at /usr/include/c++/9/functional:484
#20 0x00007f089906dc33 in std::_Function_handler<void (), std::_Bind<void ((void))(void*)> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/9/bits/std_f
unction.h:300
#21 0x00007f08998787c6 in std::function<void ()>::operator()() const (this=0x7f08697f9440) at /usr/include/c++/9/bits/std_function.h:688
#22 0x00007f0899069fee in rocksdb::ThreadPoolImpl::Impl::BGThread (this=0x563f693a4350, thread_id=1) at util/threadpool_imp.cc:266
#23 0x00007f089906a181 in rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper (arg=0x563f693db2d0) at util/threadpool_imp.cc:307
#24 0x00007f08990716e3 in std::__invoke_impl<void, void ()(void), rocksdb::BGThreadMetadata*> (__f=@0x563f693db490: 0x7f089906a06e <rocksdb::ThreadPoolImpl::Impl::BGThreadWrap
per(void*)>) at /usr/include/c++/9/bits/invoke.h:60
#25 0x00007f089907162f in std::__invoke<void ()(void), rocksdb::BGThreadMetadata*> (__fn=@0x563f693db490: 0x7f089906a06e <rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*)

) at /usr/include/c++/9/bits/invoke.h:95
#26 0x00007f089907157f in std::thread::_Invoker<std::tuple<void ()(void), rocksdb::BGThreadMetadata*> >::_M_invoke<0ul, 1ul> (this=0x563f693db488) at /usr/include/c++/9/thread
:244
#27 0x00007f0899071521 in std::thread::_Invoker<std::tuple<void ()(void), rocksdb::BGThreadMetadata*> >::operator() (this=0x563f693db488) at /usr/include/c++/9/thread:251
#28 0x00007f08990714f2 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void ()(void), rocksdb::BGThreadMetadata*> > >::_M_run (this=0x563f693db480) at /usr/includ
e/c++/9/thread:195
#29 0x00007f0897ad2de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#30 0x00007f089b67f590 in start_thread (arg=0x7f08697fa640) at pthread_create.c:463
#31 0x00007f089b5a5223 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

cocalele added a commit that referenced this issue Oct 24, 2022
like associateMergeOperator, remove `AllowSingleOperand` and `ShouldMerge` solve this problem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant