zdb should detect and print out the number of "leaked" objects
As seen in ESCL-144, it is possible for zfs to "leak" objects in such a way that they are not freed, but are also not accessible via the POSIX interface. As the only way to know that this is happened is to see one of them directly in a zdb run, or by noting unaccounted space usage, zdb should be enhanced to count these objects and return failure if some are detected.
We have access to the delete queue through the zfs_get_deleteq function; we should call it in dump_znode to determine if the object is on the delete queue. This is not the most efficient possible method, but it is the simplest to implement, and should suffice for the common case where there few objects on the delete queue.
Updated by Electric Monk about 2 years ago
- Status changed from New to Closed
commit 20b5dafb425396adaebd0267d29e1026fc4dc413 Author: Paul Dagnelie <email@example.com> Date: 2018-05-01T19:59:06.000Z 9421 zdb should detect and print out the number of "leaked" objects 9422 zfs diff and zdb should explicitly mark objects that are on the deleted queue Reviewed by: Matt Ahrens <firstname.lastname@example.org> Reviewed by: Pavel Zakharov <email@example.com> Approved by: Matt Ahrens <firstname.lastname@example.org>