zfs
zfs copied to clipboard
zcp: can’t zfs.get_prop() on a bookmark
System information
| Type | Version/Name |
|---|---|
| Distribution Name | NixOS |
| Distribution Version | 25.11.20250830.d7600c7 |
| Kernel Version | 6.16.4 |
| Architecture | x86_64 |
| OpenZFS Version | zfs-2.3.4-1 zfs-kmod-2.3.4-1 |
Describe the problem you're observing
according to zfs get all, bookmarks appear to have properties including creation, just like snapshots. but if you try to read the creation of a bookmark in a channel program, it fails with EXDEV (for bookmarks on the root dataset of a pool) or ENOENT (otherwise).
Describe how to reproduce the problem
$ sudo zfs create tank/test
$ sudo zfs snapshot -r tank@foo
$ sudo zfs bookmark tank@foo tank\#foo
$ sudo zfs bookmark tank/test@foo tank/test\#foo
$ sudo zfs program tank test.zfs.lua tank@foo
$ sudo zfs program tank test.zfs.lua tank/test@foo
$ sudo zfs program tank test.zfs.lua tank\#foo
$ sudo zfs program tank test.zfs.lua tank/test\#foo
test.zfs.lua:
result = zfs.get_prop((...).argv[1], "creation")
return result
Include any warning/errors/backtraces from the system logs
$ sudo zfs program tank test.zfs.lua tank@foo
Channel program fully executed and produced output:
return: 1763460442
$ sudo zfs program tank test.zfs.lua tank/test@foo
Channel program fully executed and produced output:
return: 1763460442
$ sudo zfs program tank test.zfs.lua tank\#foo
Channel program execution failed:
[string "channel program"]:8: bad argument #1 to 'get_prop' (dataset 'tank#foo' is not in the target pool 'tank')
stack traceback:
[C]: in function 'get_prop'
[string "channel program"]:8: in main chunk
$ sudo zfs program tank test.zfs.lua tank/test\#foo
Channel program execution failed:
[string "channel program"]:8: bad argument #1 to 'get_prop' (no such dataset 'tank/test#foo')
stack traceback:
[C]: in function 'get_prop'
[string "channel program"]:8: in main chunk