From 88aa0576a63c5b2e8d4478951b4f594fb5047b52 Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Tue, 17 Sep 2019 15:01:59 -0400 Subject: [PATCH] mgr/volumes: return string type to ceph-manager The 'volumes' ceph-mgr module returns a byte type instead of a string type as the stdout result of commands, `fs subvolume getpath` and `fs subvolumegroup getpath` to the ceph-mgr. This causes the commands to hang and the ceph-mgr to utilize 100% CPU. Fix the 'volumes' ceph-mgr module to return string type to ceph-mgr as the stdout result of the commands. Introduced-by: 3d63cd947f55a8508f972ee249ea6a04836429ae Fixes: https://tracker.ceph.com/issues/41903 Signed-off-by: Venky Shankar --- src/pybind/mgr/volumes/fs/volume.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pybind/mgr/volumes/fs/volume.py b/src/pybind/mgr/volumes/fs/volume.py index ad189c1dc0a34..791eab5f33236 100644 --- a/src/pybind/mgr/volumes/fs/volume.py +++ b/src/pybind/mgr/volumes/fs/volume.py @@ -419,7 +419,7 @@ class VolumeClient(object): if not path: raise VolumeException( -errno.ENOENT, "Subvolume '{0}' not found".format(subvolname)) - ret = 0, path, "" + ret = 0, path.decode("utf-8"), "" except VolumeException as ve: ret = self.volume_exception_to_retval(ve) return ret @@ -520,7 +520,7 @@ class VolumeClient(object): if path is None: raise VolumeException( -errno.ENOENT, "Subvolume group '{0}' not found".format(groupname)) - return 0, path, "" + return 0, path.decode("utf-8"), "" except VolumeException as ve: return self.volume_exception_to_retval(ve) -- 2.39.5