)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1078a9d7e1584ab8d2e1bd5c664cf9793e523849","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0dc711dc_4e366836","updated":"2023-05-19 16:34:23.000000000","message":"recheck ceph job timeout but it clearly was not stuck","commit_id":"40737d0cce25d7beac734ea8553785a621553253"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6c8293f58ca2f77835c30a2a2d8add39b97ab8d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"26b65a02_e90ff2ef","updated":"2023-05-23 08:56:34.000000000","message":"Explanation inline of what we are doing here. LGTM.","commit_id":"127410cd811a58f77d255047ba0b245a30faa399"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8840fa3cbd1e76eb6535f83cba0695a70a61b220","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2ee9fcb2_ea6c792e","updated":"2023-05-23 03:56:58.000000000","message":"Thank you!","commit_id":"127410cd811a58f77d255047ba0b245a30faa399"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9914baf07dd0a6b9116aad85455d36b48d77ac43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fe381ab1_91d12f97","updated":"2023-05-22 12:09:29.000000000","message":"recheck tempest-full-py3 failure during devstack setup","commit_id":"127410cd811a58f77d255047ba0b245a30faa399"}],"glance_store/_drivers/rbd.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6c8293f58ca2f77835c30a2a2d8add39b97ab8d9","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        return (\u0027rbd\u0027,)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def RBDProxy(self):"},{"line_number":296,"context_line":"        if eventletutils.is_monkey_patched(\u0027thread\u0027):"},{"line_number":297,"context_line":"            return tpool.Proxy(rbd.RBD())"},{"line_number":298,"context_line":"        else:"},{"line_number":299,"context_line":"            return rbd.RBD()"}],"source_content_type":"text/x-python","patch_set":2,"id":"4f119023_2de24d18","line":296,"range":{"start_line":296,"start_character":25,"end_line":296,"end_character":42},"updated":"2023-05-23 08:56:34.000000000","message":"eventletutils is_monkey_patched[1] calls eventlet\u0027s is_monkey_patched[2] to check if the module is already patched.\nSince monkeypatching in glance, patches everything[3] and \u0027thread\u0027 patches thread and threading modules[4], we should be good here.\n\nTo summarize, we run librbd calls in native threads when threading is monkey patched else we are already running everything in native threads.\n\n[1] https://github.com/openstack/oslo.utils/blob/439f39bdbfae5fc3e547c4be0c2b08c8f1b4922a/oslo_utils/eventletutils.py#L142\n[2] https://github.com/eventlet/eventlet/blob/dd2f0ea32d6b6d064be52fe8e27fca275985cdc4/eventlet/patcher.py#L372-L373\n[3] https://github.com/openstack/glance/blob/428295969836a2a0bad0ae0593ea1a890e155898/glance/cmd/api.py#L40\n[4] https://github.com/eventlet/eventlet/blob/dd2f0ea32d6b6d064be52fe8e27fca275985cdc4/eventlet/patcher.py#L238","commit_id":"127410cd811a58f77d255047ba0b245a30faa399"}]}
