cocalele / ViveNAS

5 stars 4 forks source link

rocksdb crash on overwrite file #9

Closed cocalele closed 1 year ago

cocalele commented 1 year ago

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::deque&, 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