)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9fba113cdacf0ecbffa51945f9c02b4b93b307e9","unresolved":true,"context_lines":[{"line_number":19,"context_line":"This is due to threading being monkey patched and during interpreter"},{"line_number":20,"context_line":"exit some logging cleanup code tries to grab a monkey patched lock after"},{"line_number":21,"context_line":"the greenlet module is already finalized. This patch avoids the stack"},{"line_number":22,"context_line":"trace by nuking the logging module cleanup handlers at exit."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Closes-Bug:#2155245"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"2a4cffa2_c9b2f76e","line":22,"updated":"2026-06-15 13:56:55.000000000","message":"The other, better, approach would be to unmonkeypatch things at exit, but I failed to do that properly.","commit_id":"999c61eeda8979d595387b22a82e2bf24db15804"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bc2e00179880f0bf8799aec1dc7f97225a181665","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f531e5fe_a62d23c5","updated":"2026-06-25 18:42:25.000000000","message":"lgtm","commit_id":"999c61eeda8979d595387b22a82e2bf24db15804"}],"nova/cmd/policy.py":[{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"e85811e6748096b607b0beb9796da82667ce0de9","unresolved":true,"context_lines":[{"line_number":179,"context_line":"    except Exception as ex:"},{"line_number":180,"context_line":"        print(_(\"error: %s\") % ex)"},{"line_number":181,"context_line":"        return 1"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"# NOTE(gibi): This is needed for \u003e\u003d py3.14 and eventlet otherwise when the"},{"line_number":185,"context_line":"# CLI exists the logging module prints and ugly stack trace with the message"}],"source_content_type":"text/x-python","patch_set":1,"id":"dbf527b7_e3e00e39","line":182,"updated":"2026-06-18 07:49:16.000000000","message":"we have same code in 3 places, maybe we can consider a shared helper in nova/utils.py","commit_id":"999c61eeda8979d595387b22a82e2bf24db15804"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e2905a22ed8b2c31916cabb3ce00093c2157681c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    except Exception as ex:"},{"line_number":180,"context_line":"        print(_(\"error: %s\") % ex)"},{"line_number":181,"context_line":"        return 1"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"# NOTE(gibi): This is needed for \u003e\u003d py3.14 and eventlet otherwise when the"},{"line_number":185,"context_line":"# CLI exists the logging module prints and ugly stack trace with the message"}],"source_content_type":"text/x-python","patch_set":1,"id":"eec6d727_ac26c2cb","line":182,"in_reply_to":"6178c359_f2d17bf5","updated":"2026-06-28 10:58:28.000000000","message":"Done","commit_id":"999c61eeda8979d595387b22a82e2bf24db15804"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bc2e00179880f0bf8799aec1dc7f97225a181665","unresolved":true,"context_lines":[{"line_number":179,"context_line":"    except Exception as ex:"},{"line_number":180,"context_line":"        print(_(\"error: %s\") % ex)"},{"line_number":181,"context_line":"        return 1"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"# NOTE(gibi): This is needed for \u003e\u003d py3.14 and eventlet otherwise when the"},{"line_number":185,"context_line":"# CLI exists the logging module prints and ugly stack trace with the message"}],"source_content_type":"text/x-python","patch_set":1,"id":"6178c359_f2d17bf5","line":182,"in_reply_to":"a6c18140_647266e4","updated":"2026-06-25 18:42:25.000000000","message":"agree, anyways it will go away soon when eventlet is removed.","commit_id":"999c61eeda8979d595387b22a82e2bf24db15804"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5f699c4a498f90a74ca875b59e0707f261760b04","unresolved":true,"context_lines":[{"line_number":179,"context_line":"    except Exception as ex:"},{"line_number":180,"context_line":"        print(_(\"error: %s\") % ex)"},{"line_number":181,"context_line":"        return 1"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"# NOTE(gibi): This is needed for \u003e\u003d py3.14 and eventlet otherwise when the"},{"line_number":185,"context_line":"# CLI exists the logging module prints and ugly stack trace with the message"}],"source_content_type":"text/x-python","patch_set":1,"id":"a6c18140_647266e4","line":182,"in_reply_to":"dbf527b7_e3e00e39","updated":"2026-06-18 12:29:37.000000000","message":"the @at_exit registration needs to happen:\n* early at import time to handle the situation when CLI exits early\n* needs to happen only for CLIs (I don\u0027t see the same exception at service stop)\n\nSo I cannot move `@atexit.register` to nova.utils as that would happen to all services importing nova.utils not just our CLIs.\n\nIn theory I could move the function to be registered  (_at_exit) to a common place but then registering them at import time would need strange import ordering to import the common function early from nova.utils to register it at import time of the CLI module.\n\nSo I settled on this slight duplication that is the simplest to read and understand.","commit_id":"999c61eeda8979d595387b22a82e2bf24db15804"}]}
