[Bug 257316] kstat.zfs sysctl tree unreachable for pools with "." in the name
Date: Wed, 21 Jul 2021 17:42:39 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257316 Bug ID: 257316 Summary: kstat.zfs sysctl tree unreachable for pools with "." in the name Product: Base System Version: 13.0-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: asomers@FreeBSD.org FreeBSD exports statistics about pools and datasets via sysctl, in a tree rooted at "kstat.zfs.<pool_name>". One problem: "." is a legal character in pool names but it's the separator for sysctl trees. When a pool has "." in the name its stats will still be exported and they can be viewed by iterating through all of "kstat.zfs". However, they won't be addressable by pool, and interpreting the output of "kstat.zfs" is difficult. For example: # I have a pool named "foo.bar" $ zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT foo.bar 9.50G 720K 9.50G - - 0% 0% 1.00x ONLINE - testpool 9.50G 1.45M 9.50G - - 0% 0% 1.00x ONLINE - # Its statistics are exported $ sysctl kstat.zfs | grep foo.bar.dataset kstat.zfs.foo.bar.dataset.objset-0x36.nunlinked: 0 kstat.zfs.foo.bar.dataset.objset-0x36.nunlinks: 0 kstat.zfs.foo.bar.dataset.objset-0x36.nread: 0 kstat.zfs.foo.bar.dataset.objset-0x36.reads: 0 kstat.zfs.foo.bar.dataset.objset-0x36.nwritten: 0 kstat.zfs.foo.bar.dataset.objset-0x36.writes: 0 kstat.zfs.foo.bar.dataset.objset-0x36.dataset_name: foo.bar # But they aren't individually addressable $ sysctl kstat.zfs.foo.bar sysctl: unknown oid 'kstat.zfs.foo.bar' $ sysctl kstat.zfs.foo sysctl: unknown oid 'kstat.zfs.foo' I think a proper solution would involve some kind of escaping of the "." character in the name. -- You are receiving this mail because: You are the assignee for the bug.