dragonfly icon indicating copy to clipboard operation
dragonfly copied to clipboard

XDEL command causes crash

Open vyavdoshenko opened this issue 7 months ago • 3 comments

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

vyavdoshenko avatar May 31 '25 12:05 vyavdoshenko

The same symptom I saw for XTRIM command.

vyavdoshenko avatar Jun 12 '25 14:06 vyavdoshenko

i do not know but we will have to revert last few changes in stream_family if we won't find the problem.

romange avatar Jun 12 '25 15:06 romange

@romange I know what is the problem here

BagritsevichStepan avatar Jun 15 '25 15:06 BagritsevichStepan