Project

General

Profile

Actions

Bug #52066

closed

list_children will hung(or timeout) when pool was unreachable

Added by wb song over 2 years ago. Updated over 2 years ago.

Status:
Won't Fix
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

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.

Actions #1

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.

Actions #2

Updated by wb song over 2 years ago

Got it, thanks.

Actions #3

Updated by Ilya Dryomov over 2 years ago

  • Status changed from New to Won't Fix
  • Assignee set to Ilya Dryomov
Actions

Also available in: Atom PDF