From: Venky Shankar Date: Tue, 17 Sep 2019 19:01:59 +0000 (-0400) Subject: mgr/volumes: return string type to ceph-manager X-Git-Tag: v14.2.5~258^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=700c59925f07e8ed2e36bbd6bec45b59efea0ed9;p=ceph.git 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 (cherry picked from commit 88aa0576a63c5b2e8d4478951b4f594fb5047b52) --- diff --git a/src/pybind/mgr/volumes/fs/volume.py b/src/pybind/mgr/volumes/fs/volume.py index 5c7f758894ea..1954198c35b3 100644 --- a/src/pybind/mgr/volumes/fs/volume.py +++ b/src/pybind/mgr/volumes/fs/volume.py @@ -412,7 +412,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 @@ -513,7 +513,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)