-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Labels
bugSomething isn't workingSomething isn't working
Description
RENAME command causes server crash when the source key's value has been offloaded to tiered storage (External encoding).
Steps to Reproduce:
- Start Dragonfly with tiered storage enabled:
./dragonfly \
--tiered_prefix=/tmp/tiered_test \
--tiered_offload_threshold=1.0 \
--tiered_upload_threshold=0.0 \
--tiered_experimental_cooling=false \
--proactor_threads=3 \
--logtostderrCreate a large key (>3KB):
redis-cli SET x "$(python3 -c "print('A'*3000)")"
Wait for offloading to complete (~3 seconds)
Execute RENAME:
redis-cli RENAME x b
Expected Behavior:
RENAME should succeed, moving the key from x to b.
Actual Behavior:
Server crashes with:
F20251204 17:21:01.817420 198536 rdb_save.cc:240] External string not supported yet
*** Check failure stack trace: ***
@ 0x5589bad10629 google::LogMessage::Fail()
@ 0x5589bad1056f google::LogMessage::SendToLog()
@ 0x5589bad0fd22 google::LogMessage::Flush()
@ 0x5589bad13e1a google::LogMessageFatal::~LogMessageFatal()
@ 0x5589ba2d1be6 _ZN4dfly13RdbSerializer9SaveValueERKNS_10CompactObjE.localalias
@ 0x5589ba2d9bd1 dfly::SerializerBase::DumpObject()
@ 0x5589ba2da04f dfly::SerializerBase::DumpObject()
@ 0x5589b9fa20a9 dfly::(anonymous namespace)::Renamer::SerializeSrc()
@ 0x5589b9fa18b0 _ZZN4dfly12_GLOBAL__N_17Renamer9FetchDataEvENKUlPNS_11TransactionEPNS_11EngineShardEE_clES3_S5_
@ 0x5589b9fb9761 _ZSt13__invoke_implIN6facade8OpStatusERKZN4dfly12_GLOBAL__N_17Renamer9FetchDataEvEUlPNS2_11TransactionEPNS2_11EngineShardEE_JS6_S8_EET_St14__invoke_otherOT0_DpOT1_
@ 0x5589b9fb7ccf _ZSt8__invokeIRKZN4dfly12_GLOBAL__N_17Renamer9FetchDataEvEUlPNS0_11TransactionEPNS0_11EngineShardEE_JS4_S6_EENSt15__invoke_resultIT_JDpT0_EE4typeEOSB_DpOSC_
@ 0x5589b9fb6938 _ZSt6invokeIRKZN4dfly12_GLOBAL__N_17Renamer9FetchDataEvEUlPNS0_11TransactionEPNS0_11EngineShardEE_JS4_S6_EENSt13invoke_resultIT_JDpT0_EE4typeEOSB_DpOSC_
@ 0x5589b9fb50c6 _ZN4absl12lts_2025051219functional_internal12InvokeObjectIZN4dfly12_GLOBAL__N_17Renamer9FetchDataEvEUlPNS3_11TransactionEPNS3_11EngineShardEE_NS6_14RunnableResultEJS7_S9_EEET0_NS1_7VoidPtrEDpNS1_8ForwardTIT1_E4typeE
@ 0x5589ba72619c absl::lts_20250512::FunctionRef<>::operator()()
@ 0x5589ba712b23 dfly::Transaction::RunCallback()
@ 0x5589ba711f9e dfly::Transaction::RunInShard()
@ 0x5589b9e4f8d7 _ZZN4dfly11EngineShard13PollExecutionEPKcPNS_11TransactionEENKUlS4_bE_clES4_b
@ 0x5589b9e50676 dfly::EngineShard::PollExecution()
@ 0x5589ba7150f3 _ZZN4dfly11Transaction11DispatchHopEvENKUlvE_clEv
@ 0x5589ba72352e _ZSt13__invoke_implIvRZN4dfly11Transaction11DispatchHopEvEUlvE_JEET_St14__invoke_otherOT0_DpOT1_
@ 0x5589ba722f5d _ZSt10__invoke_rIvRZN4dfly11Transaction11DispatchHopEvEUlvE_JEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EES5_E4typeEOS6_DpOS7_
@ 0x5589ba722a82 _ZNSt17_Function_handlerIFvvEZN4dfly11Transaction11DispatchHopEvEUlvE_E9_M_invokeERKSt9_Any_data
@ 0x5589b9d8ad30 std::function<>::operator()()
@ 0x5589bab6bd64 util::fb2::FiberQueue::Run()
@ 0x5589ba80a4fb _ZZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEENKUlvE_clEv
@ 0x5589ba80b6b1 _ZSt13__invoke_implIvZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEET_St14__invoke_otherOT0_DpOT1_
@ 0x5589ba80b436 _ZSt8__invokeIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEENSt15__invoke_resultIT_JDpT0_EE4typeEOS8_DpOS9_
@ 0x5589ba80b244 _ZSt12__apply_implIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_St5tupleIJEEJEEDcOT_OT0_St16integer_sequenceImJXspT1_EEE
@ 0x5589ba80b27e _ZSt5applyIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_St5tupleIJEEEDcOT_OT0_
@ 0x5589ba80b2fb _ZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEE4run_EON5boost7context5fiberE
@ 0x5589ba80ae79 _ZZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4INS0_19FixedStackAllocatorEEES8_NS0_13FiberPriorityERKN5boost7context12preallocatedEOT_OS9_ENKUlONSF_5fiberEE_clESN_
@ 0x5589ba80bff2 _ZSt13__invoke_implIN5boost7context5fiberERZN4util3fb26detail15WorkerFiberImplIZN4dfly9TaskQueue5StartESt17basic_string_viewIcSt11char_traitsIcEEEUlvE_JEEC4INS4_19FixedStackAllocatorEEESC_NS4_13FiberPriorityERKNS1_12preallocatedEOT_OSD_EUlOS2_E_JS2_EESL_St14__invoke_otherOT0_DpOT1_
*** SIGABRT received at time=1764861661 on cpu 0 ***
PC: @ 0x7fd59abf8b2c (unknown) pthread_kill
@ 0x5589bada194b 64 absl::lts_20250512::WriteFailureInfo()
@ 0x5589bada1bcf 96 absl::lts_20250512::AbslFailureSignalHandler()
@ 0x7fd59ab9f330 1808 (unknown)
@ 0x7fd59ab9f27e 32 raise
@ 0x7fd59ab828ff 192 abort
@ 0x5589bad1b376 176 google::DumpStackTraceAndExit()
@ 0x5589bad10629 16 google::LogMessage::Fail()
@ 0x5589bad1056f 160 google::LogMessage::SendToLog()
@ 0x5589bad0fd22 80 google::LogMessage::Flush()
@ 0x5589bad13e1a 32 google::LogMessageFatal::~LogMessageFatal()
@ 0x5589ba2d1be6 192 dfly::RdbSerializer::SaveValue()
@ 0x5589ba2d9bd1 224 dfly::SerializerBase::DumpObject()
@ 0x5589ba2da04f 320 dfly::SerializerBase::DumpObject()
@ 0x5589b9fa20a9 432 dfly::(anonymous namespace)::Renamer::SerializeSrc()
@ 0x5589b9fa18b0 224 dfly::(anonymous namespace)::Renamer::FetchData()::{lambda()#1}::operator()()
@ 0x5589b9fb9761 64 std::__invoke_impl<>()
@ 0x5589b9fb7ccf 64 std::__invoke<>()
@ 0x5589b9fb6938 64 std::invoke<>()
@ 0x5589b9fb50c6 96 absl::lts_20250512::functional_internal::InvokeObject<>()
@ 0x5589ba72619c 64 absl::lts_20250512::FunctionRef<>::operator()()
@ 0x5589ba712b23 240 dfly::Transaction::RunCallback()
@ 0x5589ba711f9e 384 dfly::Transaction::RunInShard()
@ 0x5589b9e4f8d7 64 dfly::EngineShard::PollExecution()::{lambda()#1}::operator()()
@ 0x5589b9e50676 416 dfly::EngineShard::PollExecution()
@ 0x5589ba7150f3 224 dfly::Transaction::DispatchHop()::{lambda()#1}::operator()()
@ 0x5589ba72352e 32 std::__invoke_impl<>()
@ 0x5589ba722f5d 32 std::__invoke_r<>()
@ 0x5589ba722a82 32 std::_Function_handler<>::_M_invoke()
@ 0x5589b9d8ad30 32 std::function<>::operator()()
@ 0x5589bab6bd64 240 util::fb2::FiberQueue::Run()
@ 0x5589ba80a4fb 32 dfly::TaskQueue::Start()::{lambda()#1}::operator()()
@ 0x5589ba80b6b1 32 std::__invoke_impl<>()
@ ... and at least 11 more frames
[1] 198535 IOT instruction (core dumped) ./dragonfly --tiered_prefix=/tmp/tiered_test --tiered_offload_threshold=1.0
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working