From 7349bc9108ee782b13b39798a2d7cd7cf4059f9e Mon Sep 17 00:00:00 2001 From: songweibin Date: Mon, 25 Feb 2019 14:59:25 +0800 Subject: [PATCH] librbd: set *image_size to 0 when getting ENOENT in rbd_group_image_list() Fixes: http://tracker.ceph.com/issues/38468 Signed-off-by: songweibin (cherry picked from commit 141e3a74b6fb10ca923c61dc90e7573f1becf002) --- src/librbd/librbd.cc | 1 + src/test/pybind/test_rbd.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/librbd/librbd.cc b/src/librbd/librbd.cc index 7c07d0bde1f0a..de4ed31c56055 100644 --- a/src/librbd/librbd.cc +++ b/src/librbd/librbd.cc @@ -4711,6 +4711,7 @@ extern "C" int rbd_group_image_list(rados_ioctx_t group_p, if (r == -ENOENT) { tracepoint(librbd, group_image_list_exit, 0); + *image_size = 0; return 0; } diff --git a/src/test/pybind/test_rbd.py b/src/test/pybind/test_rbd.py index f1223ce5f96cf..29935f7b74d08 100644 --- a/src/test/pybind/test_rbd.py +++ b/src/test/pybind/test_rbd.py @@ -1825,6 +1825,16 @@ class TestGroups(object): self.group.add_image(ioctx, image_name) eq([image_name], [img['name'] for img in self.group.list_images()]) + def test_group_image_list_move_to_trash(self): + eq([], list(self.group.list_images())) + with Image(ioctx, image_name) as image: + image_id = image.id() + self.group.add_image(ioctx, image_name) + eq([image_name], [img['name'] for img in self.group.list_images()]) + RBD().trash_move(ioctx, image_name, 0) + eq([], list(self.group.list_images())) + RBD().trash_restore(ioctx, image_id, image_name) + def test_group_image_many_images(self): eq([], list(self.group.list_images())) self.group.add_image(ioctx, image_name) -- 2.39.5