Skip to content

zdb -K crash with wrong usage, causing assertion failed error #17444

@grexe

Description

@grexe

System information

Type Version/Name
Distribution Name TrueNAS
Distribution Version 25.04.1 "Fangtooth"
Kernel Version 6.12.15-production+truenas
Architecture x86_64
OpenZFS Version 2.3.0-1

Describe the problem you're observing

When issuing zdb with a wrong encryption option on a non-encrypted dataset, the tool crashes with an assertion failure. I mistakenly used it because I thought I could query for a particular metadata key, unknowing that it was meant only for encryption keys.

# zdb -dv datalake/assets -K ID
ASSERT at cmd/zdb/zdb.c:3282:zdb_load_key()
zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, DSL_CRYPTO_KEY_ROOT_DDOBJ, sizeof (uint64_t), 1, &rddobj) == 0 (0x16 == 0)
  PID: 1159622   COMM: zdb
  TID: 1159622   NAME: zdb
Call trace:
/lib/x86_64-linux-gnu/libzpool.so.6(libspl_backtrace+0x35)[0x7fa4bb5314a5]
/lib/x86_64-linux-gnu/libzpool.so.6(libspl_assertf+0x157)[0x7fa4bb531427]
zdb(+0x127a8)[0x5647878387a8]
zdb(+0x128f5)[0x5647878388f5]
zdb(+0xacde)[0x564787830cde]
/lib/x86_64-linux-gnu/libc.so.6(+0x2724a)[0x7fa4babeb24a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85)[0x7fa4babeb305]
zdb(+0xad41)[0x564787830d41]
Call trace:
/lib/x86_64-linux-gnu/libzpool.so.6(libspl_backtrace+0x35)[0x7fa4bb5314a5]
zdb(+0x11f40)[0x564787837f40]
/lib/x86_64-linux-gnu/libc.so.6(+0x3c050)[0x7fa4bac00050]
/lib/x86_64-linux-gnu/libc.so.6(+0x8aebc)[0x7fa4bac4eebc]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x12)[0x7fa4babfffb2]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7fa4babea472]
/lib/x86_64-linux-gnu/libzpool.so.6(+0x59f32)[0x7fa4bb2adf32]
zdb(+0x127a8)[0x5647878387a8]
zdb(+0x128f5)[0x5647878388f5]
zdb(+0xacde)[0x564787830cde]
/lib/x86_64-linux-gnu/libc.so.6(+0x2724a)[0x7fa4babeb24a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85)[0x7fa4babeb305]
zdb(+0xad41)[0x564787830d41]
zsh: IOT instruction (core dumped)  zdb -dv datalake/assets -K ID

Describe how to reproduce the problem

run zdb -K ID on a non-encrypted dataset.

Include any warning/errors/backtraces from the system logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: DefectIncorrect behavior (e.g. crash, hang)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions