Skip to content

dragonfly crashes on ft.info #6181

@vyavdoshenko

Description

@vyavdoshenko

How to reproduce (bash script):

HOST=localhost
PORT=6379
INDEX=test_idx
ITERATIONS=5000

create_drop_worker() {
    for i in $(seq 1 $ITERATIONS); do
        redis-cli -h $HOST -p $PORT FT.CREATE $INDEX ON HASH PREFIX 1 doc: SCHEMA title TEXT 2>/dev/null
        redis-cli -h $HOST -p $PORT FT.DROPINDEX $INDEX 2>/dev/null
    done
}

info_worker() {
    for i in $(seq 1 $ITERATIONS); do
        redis-cli -h $HOST -p $PORT FT.INFO $INDEX 2>/dev/null
    done
}

for i in {1..5}; do
    create_drop_worker &
    info_worker &
done

wait

redis-cli -h $HOST -p $PORT PING || echo "SERVER CRASHED!"

Crash log:

F20251208 17:12:39.918457 164343 search_family.cc:1405] Check failed: num_notfound == 0u || num_notfound == shard_set->size() 
*** Check failure stack trace: ***
    @     0x6253350844ef  google::LogMessage::Fail()
    @     0x625335084435  google::LogMessage::SendToLog()
    @     0x625335083be8  google::LogMessage::Flush()
    @     0x625335087ce0  google::LogMessageFatal::~LogMessageFatal()
    @     0x62533489273d  dfly::SearchFamily::FtInfo()
    @     0x6253342fa922  _ZN3fu27abi_4006detail10invocation6invokeIRKPFvN4absl12lts_202505124SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKN4dfly14CommandContextEEJSC_SG_EEEDTclcl7forwardIT_Efp_Espcl7forwardIT0_Efp0_EEEOSL_DpOSM_
    @     0x6253342f9ea9  fu2::abi_400::detail::type_erasure::invocation_table::function_trait<>::internal_invoker<>::invoke()
    @     0x625334a3314f  _ZNK3fu27abi_4006detail12type_erasure6tables6vtableINS1_8propertyILb0ELb0EJKFvN4absl12lts_202505124SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKN4dfly14CommandContextEEEEEE6invokeILm0EJPKNS2_13data_accessorERKmSE_SI_EEEDcDpOT0_
    @     0x625334a331e8  _ZN3fu27abi_4006detail12type_erasure7erasureILb1ENS1_6configILb1ELb1ENS_16capacity_defaultEEENS1_8propertyILb0ELb0EJKFvN4absl12lts_202505124SpanIKSt17basic_string_viewIcSt11char_traitsIcEEEERKN4dfly14CommandContextEEEEEE6invokeILm0ERKSN_JSG_SK_EEEDcOT0_DpOT1_
    @     0x625334a33266  fu2::abi_400::detail::type_erasure::invocation_table::operator_impl<>::operator()()
    @     0x625334a2f357  dfly::CommandId::Invoke()
    @     0x62533457980d  dfly::Service::InvokeCmd()
    @     0x6253345785fd  dfly::Service::DispatchCommand()
    @     0x625334d878d4  _ZZN6facade10Connection10ParseRedisEjENKUlvE_clEv
    @     0x625334d94297  _ZSt13__invoke_implIvRKZN6facade10Connection10ParseRedisEjEUlvE_JEET_St14__invoke_otherOT0_DpOT1_
    @     0x625334d9375c  _ZSt8__invokeIRKZN6facade10Connection10ParseRedisEjEUlvE_JEENSt15__invoke_resultIT_JDpT0_EE4typeEOS6_DpOS7_
    @     0x625334d92731  _ZSt6invokeIRKZN6facade10Connection10ParseRedisEjEUlvE_JEENSt13invoke_resultIT_JDpT0_EE4typeEOS6_DpOS7_
    @     0x625334d91902  _ZN4absl12lts_2025051219functional_internal12InvokeObjectIZN6facade10Connection10ParseRedisEjEUlvE_vJEEET0_NS1_7VoidPtrEDpNS1_8ForwardTIT1_E4typeE
    @     0x625334d97ee4  absl::lts_20250512::FunctionRef<>::operator()()
    @     0x625334d876e5  facade::Connection::DispatchSingle()
    @     0x625334d87e65  facade::Connection::ParseRedis()
    @     0x625334d8609a  facade::Connection::ConnectionFlow()
    @     0x625334d83d34  facade::Connection::HandleRequests()
    @     0x625334e8af97  util::ListenerInterface::RunSingleConnection()
    @     0x625334e88b12  _ZZZN4util17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvENKUlvE_clEv
    @     0x625334e92a46  _ZSt13__invoke_implIvZZN4util17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_JEET_St14__invoke_otherOT0_DpOT1_
    @     0x625334e9186c  _ZSt8__invokeIZZN4util17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_JEENSt15__invoke_resultIT_JDpT0_EE4typeEOS5_DpOS6_
    @     0x625334e9034e  _ZSt12__apply_implIZZN4util17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_St5tupleIJEEJEEDcOT_OT0_St16integer_sequenceImJXspT1_EEE
    @     0x625334e90388  _ZSt5applyIZZN4util17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_St5tupleIJEEEDcOT_OT0_
    @     0x625334e9040d  _ZN4util3fb26detail15WorkerFiberImplIZZNS_17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_JEE4run_EON5boost7context5fiberE
    @     0x625334e8f157  _ZZN4util3fb26detail15WorkerFiberImplIZZNS_17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_JEEC4INS0_19FixedStackAllocatorEEESt17basic_string_viewIcSt11char_traitsIcEENS0_13FiberPriorityERKN5boost7context12preallocatedEOT_OS5_ENKUlONSF_5fiberEE_clESN_
    @     0x625334e99be1  _ZSt13__invoke_implIN5boost7context5fiberERZN4util3fb26detail15WorkerFiberImplIZZNS3_17ListenerInterface13RunAcceptLoopEvENKUlvE_clEvEUlvE_JEEC4INS4_19FixedStackAllocatorEEESt17basic_string_viewIcSt11char_traitsIcEENS4_13FiberPriorityERKNS1_12preallocatedEOT_OS9_EUlOS2_E_JS2_EESL_St14__invoke_otherOT0_DpOT1_
*** SIGABRT received at time=1765206760 on cpu 10 ***
PC: @     0x74e66a85db2c  (unknown)  pthread_kill
    @     0x625335115823         64  absl::lts_20250512::WriteFailureInfo()
    @     0x625335115aa7         96  absl::lts_20250512::AbslFailureSignalHandler()
    @     0x74e66a804330       1808  (unknown)
    @     0x74e66a80427e         32  raise
    @     0x74e66a7e78ff        192  abort
    @     0x62533508f23c        176  google::DumpStackTraceAndExit()
    @     0x6253350844ef         16  google::LogMessage::Fail()
    @     0x625335084435        160  google::LogMessage::SendToLog()
    @     0x625335083be8         80  google::LogMessage::Flush()
    @     0x625335087ce0         32  google::LogMessageFatal::~LogMessageFatal()
    @     0x62533489273d        544  dfly::SearchFamily::FtInfo()
    @     0x6253342fa922         64  fu2::abi_400::detail::invocation::invoke<>()
    @     0x6253342f9ea9         96  fu2::abi_400::detail::type_erasure::invocation_table::function_trait<>::internal_invoker<>::invoke()
    @     0x625334a3314f        112  fu2::abi_400::detail::type_erasure::tables::vtable<>::invoke<>()
    @     0x625334a331e8        112  fu2::abi_400::detail::type_erasure::erasure<>::invoke<>()
    @     0x625334a33266         80  fu2::abi_400::detail::type_erasure::invocation_table::operator_impl<>::operator()()
    @     0x625334a2f357        240  dfly::CommandId::Invoke()
    @     0x62533457980d        624  dfly::Service::InvokeCmd()
    @     0x6253345785fd        608  dfly::Service::DispatchCommand()
    @     0x625334d878d4        144  facade::Connection::ParseRedis()::{lambda()#1}::operator()()
    @     0x625334d94297         32  std::__invoke_impl<>()
    @     0x625334d9375c         32  std::__invoke<>()
    @     0x625334d92731         32  std::invoke<>()
    @     0x625334d91902         48  absl::lts_20250512::functional_internal::InvokeObject<>()
    @     0x625334d97ee4         32  absl::lts_20250512::FunctionRef<>::operator()()
    @     0x625334d876e5        336  facade::Connection::DispatchSingle()
    @     0x625334d87e65        240  facade::Connection::ParseRedis()
    @     0x625334d8609a        336  facade::Connection::ConnectionFlow()
    @     0x625334d83d34        624  facade::Connection::HandleRequests()
    @     0x625334e8af97        288  util::ListenerInterface::RunSingleConnection()
    @     0x625334e88b12         48  util::ListenerInterface::RunAcceptLoop()::{lambda()#1}::operator()()::{lambda()#1}::operator()()
    @     0x625334e92a46         32  std::__invoke_impl<>()
    @ ... and at least 11 more frames
[1]    164331 IOT instruction (core dumped)  ./dragonfly --dbfilename= --logtostderr 2>&1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions