)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"6aee090abd794b6579e1ddd5e2c0e87fe752a0d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c2effb43_1ce5f873","updated":"2026-03-23 14:03:36.000000000","message":"os.name \u003d\u003d \u0027nt\u0027 Windows guard existed only in cmd/volume.py in the old code (not in api/scheduler/backup), but cmd/volume.py is the service most likely to spawn OS-level subprocesses. Any impact of this change. Also release notes are missing","commit_id":"4a2fee2148808829140fd9c258848ef1012b5d50"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"3de003982abc5cf02551eb3363b7484822abfe9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"df77c401_8aaec8ad","updated":"2026-04-15 12:02:41.000000000","message":"Looks okay to me.  It will be nice to remove all of the conditional eventlet logic once threading is verified.","commit_id":"cbad4a6e598cc5277d56eba99a7ff5c9166b60eb"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8051958820fa6fc45c5dc15e7da296979cb12885","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"fc55eb1d_f6029ee8","updated":"2026-04-09 19:48:59.000000000","message":"recheck\n\ndevstack-plugin-nfs-tempest-full POST_FAILURE (missing logs)","commit_id":"cbad4a6e598cc5277d56eba99a7ff5c9166b60eb"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4e05cf34848fbe2ce1586f1827f222255a4c49da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"178d375c_2d3e9d52","updated":"2026-04-08 18:21:34.000000000","message":"recheck\n\ndevstack-plugin-nfs-tempest-full timed out","commit_id":"cbad4a6e598cc5277d56eba99a7ff5c9166b60eb"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2bcaff317a15f2ccdaba91554e255f84fdd5c89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"351619d7_69b666d4","updated":"2026-04-13 12:17:51.000000000","message":"recheck\n\ngrenade apt Could not connect to mirror.gra1.ovh.opendev.org:443","commit_id":"cbad4a6e598cc5277d56eba99a7ff5c9166b60eb"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"71373404f21f6a873e80d7c82fc81cd0a61aeefa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"dcc904e4_83210f42","updated":"2026-04-10 13:41:38.000000000","message":"recheck\n\ntempest-integrated-storage","commit_id":"cbad4a6e598cc5277d56eba99a7ff5c9166b60eb"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3f6cfc7d166ec53262a8d98ff7cefeebe959f171","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"b752ca3f_6fc44b46","updated":"2026-04-17 13:09:02.000000000","message":"recheck\n\ncinder-tempest-plugin-lvm-lio-barbican failed","commit_id":"470115b5071e7ff20dc4f0ac7dcbcd398d3d8bd7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"93c62c3de849ddb59e0e19fe2e0692d709eda3d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"9ca4b4a9_a6cb6221","updated":"2026-04-29 12:55:25.000000000","message":"Two really minor issues noted inline.","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8cd6350182cda1ef319878ea121f955940fabbb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"84749c7c_d3e195bf","updated":"2026-04-28 12:52:51.000000000","message":"recheck\n\ncinder-tempest-plugin-protection-functional failed to create backups","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab81d4573ad6b1cb7ccb4b5d6de9f929a801fa97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"d62752d5_4e515d23","updated":"2026-05-01 14:48:38.000000000","message":"Revisions LGTM.","commit_id":"cf5a8cd05609c614bdd893d7de1bd64caa250ef9"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"dff22ed80448dcd508bdde806a7a2b9533777da6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"47701226_81b8404c","updated":"2026-05-01 14:46:10.000000000","message":"Still looks good, I\u0027m okay with this.","commit_id":"cf5a8cd05609c614bdd893d7de1bd64caa250ef9"}],"cinder/cmd/scheduler.py":[{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"7ea641f96a436a779bcd2ed26433c4f8ebfec50f","unresolved":true,"context_lines":[{"line_number":46,"context_line":"         version\u003dversion.version_string())"},{"line_number":47,"context_line":"    logging.setup(CONF, \"cinder\")"},{"line_number":48,"context_line":"    python_logging.captureWarnings(True)"},{"line_number":49,"context_line":"    LOG \u003d logging.getLogger(__name__)  # noqa: F841"},{"line_number":50,"context_line":"    gmr.TextGuruMeditation.setup_autorun(version, conf\u003dCONF)"},{"line_number":51,"context_line":"    server \u003d service.Service.create(binary\u003d\u0027cinder-scheduler\u0027)"},{"line_number":52,"context_line":"    service.serve(server)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3590c4b3_c1d2efab","line":49,"updated":"2026-04-22 22:08:47.000000000","message":"This is unused.","commit_id":"470115b5071e7ff20dc4f0ac7dcbcd398d3d8bd7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"76fdc02782dea114fe0ccec09174cd428899aeaa","unresolved":false,"context_lines":[{"line_number":46,"context_line":"         version\u003dversion.version_string())"},{"line_number":47,"context_line":"    logging.setup(CONF, \"cinder\")"},{"line_number":48,"context_line":"    python_logging.captureWarnings(True)"},{"line_number":49,"context_line":"    LOG \u003d logging.getLogger(__name__)  # noqa: F841"},{"line_number":50,"context_line":"    gmr.TextGuruMeditation.setup_autorun(version, conf\u003dCONF)"},{"line_number":51,"context_line":"    server \u003d service.Service.create(binary\u003d\u0027cinder-scheduler\u0027)"},{"line_number":52,"context_line":"    service.serve(server)"}],"source_content_type":"text/x-python","patch_set":20,"id":"a80440ac_75435e6f","line":49,"in_reply_to":"3590c4b3_c1d2efab","updated":"2026-04-27 19:45:39.000000000","message":"Done","commit_id":"470115b5071e7ff20dc4f0ac7dcbcd398d3d8bd7"}],"cinder/monkey_patch.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a1ff8d77808a26df5dee76336d048c175f5dd4cb","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    problems \u003d (set([\u0027urllib3\u0027, \u0027oslo_context.context\u0027]) \u0026"},{"line_number":50,"context_line":"                set(sys.modules.keys()))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":53,"context_line":"        # eventlet monkey patching the os module causes subprocess.Popen to"},{"line_number":54,"context_line":"        # fail on Windows when using pipes due to missing non-blocking IO"},{"line_number":55,"context_line":"        # support."}],"source_content_type":"text/x-python","patch_set":6,"id":"370b2fa0_71a2b5a4","line":52,"range":{"start_line":52,"start_character":4,"end_line":52,"end_character":23},"updated":"2026-03-10 17:31:30.000000000","message":"This code has been removed from Cinder, no longer needed here.","commit_id":"8fe06c740e66ac8e48f7b5db8956358a5e79de31"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f830474ec4b5e23fe749c797512f0f029d3b32f6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    problems \u003d (set([\u0027urllib3\u0027, \u0027oslo_context.context\u0027]) \u0026"},{"line_number":50,"context_line":"                set(sys.modules.keys()))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":53,"context_line":"        # eventlet monkey patching the os module causes subprocess.Popen to"},{"line_number":54,"context_line":"        # fail on Windows when using pipes due to missing non-blocking IO"},{"line_number":55,"context_line":"        # support."}],"source_content_type":"text/x-python","patch_set":6,"id":"9b240654_0383c87b","line":52,"range":{"start_line":52,"start_character":4,"end_line":52,"end_character":23},"in_reply_to":"370b2fa0_71a2b5a4","updated":"2026-03-24 14:46:44.000000000","message":"Done","commit_id":"8fe06c740e66ac8e48f7b5db8956358a5e79de31"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"93c62c3de849ddb59e0e19fe2e0692d709eda3d9","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        LOG.warning(\"Modules with known eventlet monkey patching issues were \""},{"line_number":79,"context_line":"                    \"imported prior to eventlet monkey patching: %s. This \""},{"line_number":80,"context_line":"                    \"warning can usually be ignored if the caller is only \""},{"line_number":81,"context_line":"                    \"importing and not executing nova code.\","},{"line_number":82,"context_line":"                    \u0027, \u0027.join(problems))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":21,"id":"3cc06c69_b4dd36a6","line":81,"range":{"start_line":81,"start_character":49,"end_line":81,"end_character":54},"updated":"2026-04-29 12:55:25.000000000","message":"I guess the log line will contain a cinder filename, but this message could be misleading.  I suggest changing to \u0027cinder\u0027.","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"978d4a8b2f056c9daf30d67b3e0e2f9ac9a22304","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        LOG.warning(\"Modules with known eventlet monkey patching issues were \""},{"line_number":79,"context_line":"                    \"imported prior to eventlet monkey patching: %s. This \""},{"line_number":80,"context_line":"                    \"warning can usually be ignored if the caller is only \""},{"line_number":81,"context_line":"                    \"importing and not executing nova code.\","},{"line_number":82,"context_line":"                    \u0027, \u0027.join(problems))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":21,"id":"41d40611_f624947e","line":81,"range":{"start_line":81,"start_character":49,"end_line":81,"end_character":54},"in_reply_to":"3cc06c69_b4dd36a6","updated":"2026-04-29 13:08:15.000000000","message":"Yeah, definitely want to change that.","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9188162882298eb8261439aea7fc8770204d59d8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        LOG.warning(\"Modules with known eventlet monkey patching issues were \""},{"line_number":79,"context_line":"                    \"imported prior to eventlet monkey patching: %s. This \""},{"line_number":80,"context_line":"                    \"warning can usually be ignored if the caller is only \""},{"line_number":81,"context_line":"                    \"importing and not executing nova code.\","},{"line_number":82,"context_line":"                    \u0027, \u0027.join(problems))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":21,"id":"7a078997_7b5afaa7","line":81,"range":{"start_line":81,"start_character":49,"end_line":81,"end_character":54},"in_reply_to":"41d40611_f624947e","updated":"2026-04-29 16:22:59.000000000","message":"Done","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"93c62c3de849ddb59e0e19fe2e0692d709eda3d9","unresolved":true,"context_lines":[{"line_number":101,"context_line":"    env \u003d os.environ.get(\u0027OS_CINDER_DISABLE_EVENTLET_PATCHING\u0027, \u0027\u0027).lower()"},{"line_number":102,"context_line":"    if env \u003d\u003d \u0027\u0027:"},{"line_number":103,"context_line":"        should_patch \u003d (backend \u003d\u003d \u0027eventlet\u0027)"},{"line_number":104,"context_line":"    elif env in (\u00271\u0027, \u0027true\u0027, \u0027yes\u0027):"},{"line_number":105,"context_line":"        should_patch \u003d False"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        should_patch \u003d True"}],"source_content_type":"text/x-python","patch_set":21,"id":"18e62c6e_5b446d19","line":104,"updated":"2026-04-29 12:55:25.000000000","message":"Just want to flag my nit on the parent patch that we should also accept \"on\" here","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"28467db27986ccf48ba9f082e026cf53112f89a7","unresolved":true,"context_lines":[{"line_number":101,"context_line":"    env \u003d os.environ.get(\u0027OS_CINDER_DISABLE_EVENTLET_PATCHING\u0027, \u0027\u0027).lower()"},{"line_number":102,"context_line":"    if env \u003d\u003d \u0027\u0027:"},{"line_number":103,"context_line":"        should_patch \u003d (backend \u003d\u003d \u0027eventlet\u0027)"},{"line_number":104,"context_line":"    elif env in (\u00271\u0027, \u0027true\u0027, \u0027yes\u0027):"},{"line_number":105,"context_line":"        should_patch \u003d False"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        should_patch \u003d True"}],"source_content_type":"text/x-python","patch_set":21,"id":"6ea7adc8_1557285b","line":104,"in_reply_to":"18e62c6e_5b446d19","updated":"2026-04-30 13:40:09.000000000","message":"After discussing this some, I think it makes sense to reject unexpected values here.","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"342503af8d8d67f4ffb71dc19f0f4d216d2a669d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    env \u003d os.environ.get(\u0027OS_CINDER_DISABLE_EVENTLET_PATCHING\u0027, \u0027\u0027).lower()"},{"line_number":102,"context_line":"    if env \u003d\u003d \u0027\u0027:"},{"line_number":103,"context_line":"        should_patch \u003d (backend \u003d\u003d \u0027eventlet\u0027)"},{"line_number":104,"context_line":"    elif env in (\u00271\u0027, \u0027true\u0027, \u0027yes\u0027):"},{"line_number":105,"context_line":"        should_patch \u003d False"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        should_patch \u003d True"}],"source_content_type":"text/x-python","patch_set":21,"id":"37661805_119d0df6","line":104,"in_reply_to":"6ea7adc8_1557285b","updated":"2026-04-30 17:09:56.000000000","message":"Done","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"93c62c3de849ddb59e0e19fe2e0692d709eda3d9","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    eventlet.patcher.monkey_patch \u003d _poison"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    # We want to have this but cannot have this yet as we still have common"},{"line_number":152,"context_line":"    # code that imports eventlet like nova.utils.tpool"},{"line_number":153,"context_line":"    #"},{"line_number":154,"context_line":"    # class PoisonEventletImport:"},{"line_number":155,"context_line":"    #     def find_spec(self, fullname, path, target\u003dNone):"}],"source_content_type":"text/x-python","patch_set":21,"id":"5c4dfa04_42e76a6b","line":152,"updated":"2026-04-29 12:55:25.000000000","message":"Looks like we\u0027re currently in the same boat with cinder.utils","commit_id":"4c14113b26d52d33583ed636962b763ee1cb0a35"}]}
