Bug #52066
closedlist_children will hung(or timeout) when pool was unreachable
0%
Description
[root~ ]# ceph osd lspools
18 rbd,19 wl,27 lmy,29 dym,
[root~ ]# rbd children wl/im925@luo
rbd: listing children failed: (110) Connection timed out
2021-08-05 12:24:49.445958 7f93d38e9d40 -1 librbd::api::Image: list_children: error reading list of children from pool lmy
[root~ ]#
Since list_children will traverse every pool's metadata object of rbd_children and it will hung(or timeout) when pool was unreachable, this causes the entire cluster of children cannot be queried.
Is this a bug?
How about stored the child's metadata in parent-image (e.g stored in rbd_header.<image_id>)?
In that way, we can queried children info from parent's rbd_header.<image_id>.
Thanks.
Updated by Ilya Dryomov over 2 years ago
Hi Song,
Is this a bug?
No, it is working as expected.
How about stored the child's metadata in parent-image (e.g stored in rbd_header.<image_id>)?
In that way, we can queried children info from parent's rbd_header.<image_id>.
The per-pool rbd_children object makes it possible to create a clone of a parent that is located in a read-only pool (or a read-write pool that the tenant creating the clone only has read-only access to). Querying the children is a rare operation (mostly "rbd children" and "rbd snap unprotect" commands) and pessimizing it was a trade off made in favor of read-only parent pool use case.
Updated by Ilya Dryomov over 2 years ago
- Status changed from New to Won't Fix
- Assignee set to Ilya Dryomov