dragonfly
dragonfly copied to clipboard
XDEL command causes crash
The scenario:
XADD "k1 \"v1\" k2 \"v2 with spaces\" \"k3 with spaces\" \"v3\"" 0 "set1" "member1"
XDEL "k1 \"v1\" k2 \"v2 with spaces\" \"k3 with spaces\" \"v3\"" "46-867"
The crash log:
F20250531 15:35:53.395673 327389 stream_family.cc:44] Check failed: pv.MallocUsed() != 0
*** Check failure stack trace: ***
@ 0x5bca9341fd23 google::LogMessage::Fail()
@ 0x5bca9341fc69 google::LogMessage::SendToLog()
@ 0x5bca9341f41c google::LogMessage::Flush()
@ 0x5bca93423514 google::LogMessageFatal::~LogMessageFatal()
@ 0x5bca929557d5 dfly::StreamMemTracker::UpdateStreamSize()
@ 0x5bca9295db7f dfly::(anonymous namespace)::OpDel()
@ 0x5bca92967953 _ZZN4dfly12StreamFamily4XDelEN4absl12lts_202407224SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKNS_14CommandContextEENKUlPNS_11TransactionEPNS_11EngineShardEE_clESE_SG_
@ 0x5bca9297273d _ZZN4dfly11Transaction18ScheduleSingleHopTIRZNS_12StreamFamily4XDelEN4absl12lts_202407224SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKNS_14CommandContextEEUlPS0_PNS_11EngineShardEE_EEDTclfp_fpTLDnEEEOT_ENKUlSF_SH_E_clESF_SH_
@ 0x5bca9298493e _ZSt13__invoke_implIN6facade8OpStatusERKZN4dfly11Transaction18ScheduleSingleHopTIRZNS2_12StreamFamily4XDelEN4absl12lts_202407224SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKNS2_14CommandContextEEUlPS3_PNS2_11EngineShardEE_EEDTclfp_fpTLDnEEEOT_EUlSI_SK_E_JSI_SK_EESO_St14__invoke_otherOT0_DpOT1_
@ 0x5bca92982c57 _ZSt8__invokeIRKZN4dfly11Transaction18ScheduleSingleHopTIRZNS0_12StreamFamily4XDelEN4absl12lts_202407224SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKNS0_14CommandContextEEUlPS1_PNS0_11EngineShardEE_EEDTclfp_fpTLDnEEEOT_EUlSG_SI_E_JSG_SI_EENSt15__invoke_resultISM_JDpT0_EE4typeESN_DpOSS_
@ 0x5bca92980156 _ZSt6invokeIRKZN4dfly11Transaction18ScheduleSingleHopTIRZNS0_12StreamFamily4XDelEN4absl12lts_202407224SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKNS0_14CommandContextEEUlPS1_PNS0_11EngineShardEE_EEDTclfp_fpTLDnEEEOT_EUlSG_SI_E_JSG_SI_EENSt13invoke_resultISM_JDpT0_EE4typeESN_DpOSS_
@ 0x5bca9297c8e8 _ZN4absl12lts_2024072219functional_internal12InvokeObjectIZN4dfly11Transaction18ScheduleSingleHopTIRZNS3_12StreamFamily4XDelENS0_4SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKNS3_14CommandContextEEUlPS4_PNS3_11EngineShardEE_EEDTclfp_fpTLDnEEEOT_EUlSH_SJ_E_NS4_14RunnableResultEJSH_SJ_EEET0_NS1_7VoidPtrEDpNS1_8ForwardTIT1_E4typeE
@ 0x5bca92c5f392 absl::lts_20240722::FunctionRef<>::operator()()
@ 0x5bca92c4bb11 dfly::Transaction::RunCallback()
@ 0x5bca92c50e88 dfly::Transaction::ScheduleInShard()
@ 0x5bca92c4c43d _ZZN4dfly11Transaction16ScheduleInternalEvENKUlvE_clEv
@ 0x5bca92c5be16 _ZSt13__invoke_implIvRZN4dfly11Transaction16ScheduleInternalEvEUlvE_JEET_St14__invoke_otherOT0_DpOT1_
@ 0x5bca92c5b695 _ZSt10__invoke_rIvRZN4dfly11Transaction16ScheduleInternalEvEUlvE_JEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EES5_E4typeEOS6_DpOS7_
@ 0x5bca92c5aadf _ZNSt17_Function_handlerIFvvEZN4dfly11Transaction16ScheduleInternalEvEUlvE_E9_M_invokeERKSt9_Any_data
@ 0x5bca9243c16e std::function<>::operator()()
@ 0x5bca933aa0d6 util::fb2::FiberQueue::Run()
@ 0x5bca92d3dae1 _ZZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEENKUlvE_clEv
@ 0x5bca92d3ecbd _ZSt13__invoke_implIvZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEET_St14__invoke_otherOT0_DpOT1_
@ 0x5bca92d3ea42 _ZSt8__invokeIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEENSt15__invoke_resultIT_JDpT0_EE4typeEOS8_DpOS9_
@ 0x5bca92d3e850 _ZSt12__apply_implIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_St5tupleIJEEJEEDcOT_OT0_St16integer_sequenceImJXspT1_EEE
@ 0x5bca92d3e88a _ZSt5applyIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_St5tupleIJEEEDcOT_OT0_
@ 0x5bca92d3e907 _ZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEE4run_EON5boost7context5fiberE
@ 0x5bca92d3e485 _ZZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4INS0_19FixedStackAllocatorEEES8_NS0_13FiberPriorityERKN5boost7context12preallocatedEOT_OS9_ENKUlONSF_5fiberEE_clESN_
@ 0x5bca92d3f5fe _ZSt13__invoke_implIN5boost7context5fiberERZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4INS4_19FixedStackAllocatorEEESC_NS4_13FiberPriorityERKNS1_12preallocatedEOT_OSD_EUlOS2_E_JS2_EESL_St14__invoke_otherOT0_DpOT1_
@ 0x5bca92d3f429 _ZSt8__invokeIRZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4INS1_19FixedStackAllocatorEEES9_NS1_13FiberPriorityERKN5boost7context12preallocatedEOT_OSA_EUlONSG_5fiberEE_JSN_EENSt15__invoke_resultISK_JDpT0_EE4typeESL_DpOSS_
@ 0x5bca92d3f2ff _ZSt6invokeIRZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4INS1_19FixedStackAllocatorEEES9_NS1_13FiberPriorityERKN5boost7context12preallocatedEOT_OSA_EUlONSG_5fiberEE_JSN_EENSt13invoke_resultISK_JDpT0_EE4typeESL_DpOSS_
@ 0x5bca92d3f0aa _ZN5boost7context6detail12fiber_recordINS0_5fiberEN4util3fb219FixedStackAllocatorEZNS5_6detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4IS6_EESE_NS5_13FiberPriorityERKNS0_12preallocatedEOT_OSF_EUlOS3_E_E3runEPv
*** SIGABRT received at time=1748694953 on cpu 9 ***
PC: @ 0x75669f02ab2c (unknown) pthread_kill
@ 0x5bca934a80a0 64 absl::lts_20240722::WriteFailureInfo()
@ 0x5bca934a831c 96 absl::lts_20240722::AbslFailureSignalHandler()
@ 0x75669efd1330 1792 (unknown)
@ 0x75669efd127e 32 raise
@ 0x75669efb48ff 192 abort
@ 0x5bca9342ab02 176 google::DumpStackTraceAndExit()
@ 0x5bca9341fd23 16 google::LogMessage::Fail()
@ 0x5bca9341fc69 160 google::LogMessage::SendToLog()
@ 0x5bca9341f41c 80 google::LogMessage::Flush()
@ 0x5bca93423514 32 google::LogMessageFatal::~LogMessageFatal()
@ 0x5bca929557d5 192 dfly::StreamMemTracker::UpdateStreamSize()
@ 0x5bca9295db7f 416 dfly::(anonymous namespace)::OpDel()
@ 0x5bca92967953 128 dfly::StreamFamily::XDel()::{lambda()#1}::operator()()
@ 0x5bca9297273d 64 dfly::Transaction::ScheduleSingleHopT<>()::{lambda()#1}::operator()()
@ 0x5bca9298493e 64 std::__invoke_impl<>()
@ 0x5bca92982c57 64 std::__invoke<>()
@ 0x5bca92980156 64 std::invoke<>()
@ 0x5bca9297c8e8 96 absl::lts_20240722::functional_internal::InvokeObject<>()
@ 0x5bca92c5f392 64 absl::lts_20240722::FunctionRef<>::operator()()
@ 0x5bca92c4bb11 240 dfly::Transaction::RunCallback()
@ 0x5bca92c50e88 448 dfly::Transaction::ScheduleInShard()
@ 0x5bca92c4c43d 96 dfly::Transaction::ScheduleInternal()::{lambda()#1}::operator()()
@ 0x5bca92c5be16 32 std::__invoke_impl<>()
@ 0x5bca92c5b695 32 std::__invoke_r<>()
@ 0x5bca92c5aadf 32 std::_Function_handler<>::_M_invoke()
@ 0x5bca9243c16e 32 std::function<>::operator()()
@ 0x5bca933aa0d6 240 util::fb2::FiberQueue::Run()
@ 0x5bca92d3dae1 32 dfly::TaskQueue::Start()::{lambda()#1}::operator()()
@ 0x5bca92d3ecbd 32 std::__invoke_impl<>()
@ 0x5bca92d3ea42 32 std::__invoke<>()
@ 0x5bca92d3e850 32 std::__apply_impl<>()
@ 0x5bca92d3e88a 48 std::apply<>()
@ ... and at least 8 more frames
[1] 327378 IOT instruction (core dumped) ./dragonfly --dbfilename= --logtostderr 2>&1
The same symptom I saw for XTRIM command.
i do not know but we will have to revert last few changes in stream_family if we won't find the problem.
@romange I know what is the problem here