What type of bug is this?
Crash
What subsystems are affected?
Storage Engine
Minimal reproduce step
Not sure how to reproduce. It happened in a relatively old version (0.12).
What did you expect to see?
Datanode restarts without panic
What did you see instead?
Panic during restarting the datanode
What operating system did you use?
Unrelated
What version of GreptimeDB did you use?
0.12
Relevant log output and stack trace
thread 'global-worker' panicked at greptimedb/src/mito2/src/memtable/key_values.rs:314:14:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2026-04-20T06:22:31.459192Z ERROR common_telemetry::panic_hook: panicked at greptimedb/src/mito2/src/memtable/key_values.rs:314:14:
called `Option::unwrap()` on a `None` value backtrace= 0: common_telemetry::panic_hook::set_panic_hook::{{closure}}
at /greptimedb/greptimedb/src/common/telemetry/src/panic_hook.rs:37:25
1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/alloc/src/boxed.rs:1980:9
std::panicking::rust_panic_with_hook
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/std/src/panicking.rs:841:13
2: std::panicking::begin_panic_handler::{{closure}}
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/std/src/panicking.rs:699:13
3: std::sys::backtrace::__rust_end_short_backtrace
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/std/src/sys/backtrace.rs:168:18
4: __rustc::rust_begin_unwind
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/std/src/panicking.rs:697:5
5: core::panicking::panic_fmt
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/panicking.rs:75:14
6: core::panicking::panic
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/panicking.rs:145:5
7: core::option::unwrap_failed
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/option.rs:2040:5
8: mito2::memtable::key_values::SparseReadRowHelper::new
9: mito2::memtable::key_values::KeyValues::new
at /greptimedb/greptimedb/src/mito2/src/memtable/key_values.rs:49:22
10: mito2::region_write_ctx::RegionWriteCtx::write_memtable::{{closure}}::{{closure}}
at /greptimedb/greptimedb/src/mito2/src/region_write_ctx.rs:221:27
core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/ops/function.rs:294:13
core::iter::traits::iterator::Iterator::find_map::check::{{closure}}
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/iter/traits/iterator.rs:2888:32
<core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::try_fold::enumerate::{{closure}}
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/iter/adapters/enumerate.rs:119:27
<alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::try_fold
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/alloc/src/vec/into_iter.rs:351:25
<core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::try_fold
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/iter/adapters/enumerate.rs:125:9
core::iter::traits::iterator::Iterator::find_map
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/iter/traits/iterator.rs:2894:9
<core::iter::adapters::filter_map::FilterMap<I,F> as core::iter::traits::iterator::Iterator>::next
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/iter/adapters/filter_map.rs:64:9
<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/alloc/src/vec/spec_from_iter_nested.rs:25:32
<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter{{reify.shim}}
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/alloc/src/vec/spec_from_iter_nested.rs:19:5
alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/alloc/src/vec/in_place_collect.rs:246:9
11: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/alloc/src/vec/mod.rs:3438:9
core::iter::traits::iterator::Iterator::collect
at /rustc/4d051fb306e661654d088892e02e69b8c0c39d43/library/core/src/iter/traits/iterator.rs:2001:9
mito2::region_write_ctx::RegionWriteCtx::write_memtable::{{closure}}
at /greptimedb/greptimedb/src/mito2/src/region_write_ctx.rs:217:25
12: mito2::region::opener::replay_memtable::{{closure}}
at /greptimedb/greptimedb/src/mito2/src/region/opener.rs:653:43
13: mito2::region::opener::RegionOpener::maybe_open::{{closure}}
at /greptimedb/greptimedb/src/mito2/src/region/opener.rs:433:14
14: mito2::region::opener::RegionOpener::open::{{closure}}
at /greptimedb/greptimedb/src/mito2/src/region/opener.rs:294:14
15: mito2::worker::handle_open::<impl mito2::worker::RegionWorkerLoop<S>>::handle_open_request::{{closure}}::{{closure}}
at /greptimedb/greptimedb/src/mito2/src/worker/handle_open.rs:123:46
What type of bug is this?
Crash
What subsystems are affected?
Storage Engine
Minimal reproduce step
Not sure how to reproduce. It happened in a relatively old version (0.12).
What did you expect to see?
Datanode restarts without panic
What did you see instead?
Panic during restarting the datanode
What operating system did you use?
Unrelated
What version of GreptimeDB did you use?
0.12
Relevant log output and stack trace