)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"af9261b9d973ad4f47df1ce6eaeffe9cb861b734","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c4904f92_6c7d85f0","updated":"2026-01-21 10:42:01.000000000","message":"I have a question","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"df37fbae6322f4c1891bd74ef4162aa2342dbf66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c6de3d71_f27ef3e6","updated":"2026-01-21 09:20:57.000000000","message":"LGTM, there will be a conflict with https://review.opendev.org/c/openstack/oslo.service/+/965208/ so either we continue first with this patch, and rebase and fix conflict manually on 965208, or we could transform this patch in a follow up of 965208. In all the case these changes looks correct.","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"a53f827cad201a8ed54c15ce7500aeb059da4a5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"18fadb02_a9898cd0","updated":"2026-01-21 11:27:40.000000000","message":"removing my vote to highlight gibi\u0027s questions","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"32bafb3d6392abe07a2c9f86f36e22e49f18477b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b6609908_dbca646c","in_reply_to":"78f407b6_5495fa3d","updated":"2026-01-21 16:29:23.000000000","message":"The change 965208 registering it via oslo_config_glue.register_opts which is a hidden registration and main goal of this change is to remove the glue as much as we can and that is why this change register the oslo.service config in oslo.service itself.\n\n965208 adding more things on spawn working so I think it will be good if we can keep the graceful_shutdown_timeout separate (in this change) so that graceful shutdown signal handling can be done without depending on the spawn change.","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f131a5a5ed89fa00d5066f5591dc7d4b1f5dc96c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"924ef662_2c72e4f8","in_reply_to":"b6609908_dbca646c","updated":"2026-01-21 17:14:53.000000000","message":"I saw that 965208 is also close to merge (I left some comment) so I am ok either way (rebase 965208 on top of this or I can rebase on top of your change), please let me know.","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"654440a4a0f20a1776f965d9930cb0bfcb65d20c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"78f407b6_5495fa3d","in_reply_to":"c6de3d71_f27ef3e6","updated":"2026-01-21 11:25:49.000000000","message":"Thanks a lot! I think this patch is no longer needed.\n\nThe graceful_shutdown_timeout handling is already covered by the patch 965208. I believe this patch can be safely abandoned.","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"54e7b8ed0f8bb0016acd43cfb36bb88a140c2699","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b0a8b6fb_d420f109","updated":"2026-01-22 03:35:22.000000000","message":"recheck","commit_id":"547ad01aea75f552c312c9588a334c2b4f4a728a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4ca80706fce393738fe7c2a65549b2cf07124ec4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"08e61d86_83b48b24","updated":"2026-01-22 03:33:57.000000000","message":"recheck https://bugs.launchpad.net/oslo.service/+bug/2138840","commit_id":"547ad01aea75f552c312c9588a334c2b4f4a728a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a06c70f3e018ad6fc3762f0ef3af4702f4a808c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cd22e2db_857e3756","updated":"2026-01-22 03:25:47.000000000","message":"test_allows_multiple_launch_service_calls seems racy. This test try to launch two services which can end up creating the two cotyledon.ServiceManager which is not allowed. I will open another bug for that and fix.\n\nft1.3: oslo_service.tests.backend.threading.test_launcher.ProcessLauncherTestCase.test_allows_multiple_launch_service_callstesttools.testresult.real._StringException: Traceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/oslo.service/oslo_service/tests/backend/threading/test_launcher.py\", line 68, in test_allows_multiple_launch_service_calls\n    launcher.launch_service(s1)\n  File \"/home/zuul/src/opendev.org/openstack/oslo.service/oslo_service/backend/_threading/service.py\", line 270, in launch_service\n    self._manager \u003d cotyledon.ServiceManager(\n  File \"/home/zuul/src/opendev.org/openstack/oslo.service/.tox/py310/lib/python3.10/site-packages/cotyledon/_service_manager.py\", line 151, in __init__\n    raise RuntimeError(msg)\nRuntimeError: Only one instance of ServiceManager per application is allowed\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/oslo.service/oslo_service/tests/backend/threading/test_launcher.py\", line 71, in test_allows_multiple_launch_service_calls\n    self.fail(\n  File \"/usr/lib/python3.10/unittest/case.py\", line 675, in fail\n    raise self.failureException(msg)\nAssertionError: Multiple launch_service() calls raised an exception: Only one instance of ServiceManager per application is allowed","commit_id":"547ad01aea75f552c312c9588a334c2b4f4a728a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e82cc5a6ab8861098c9f4e1b4c8a8c9dca336eef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"77743adc_f8cb5e35","updated":"2026-01-22 18:32:47.000000000","message":"this is squashed in https://review.opendev.org/c/openstack/oslo.service/+/965208","commit_id":"547ad01aea75f552c312c9588a334c2b4f4a728a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4ca80706fce393738fe7c2a65549b2cf07124ec4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"be3e8134_7135a335","in_reply_to":"cd22e2db_857e3756","updated":"2026-01-22 03:33:57.000000000","message":"actually it is possible race condition issue in ProcessLaucnher that is why this test fail. I opened the bug https://bugs.launchpad.net/oslo.service/+bug/2138840","commit_id":"547ad01aea75f552c312c9588a334c2b4f4a728a"}],"oslo_service/backend/_threading/service.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"af9261b9d973ad4f47df1ce6eaeffe9cb861b734","unresolved":true,"context_lines":[{"line_number":143,"context_line":"        self.conf \u003d conf"},{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            self.conf.register_opts(_options.service_opts)"},{"line_number":146,"context_line":"        except cfg.DuplicateOptError:"},{"line_number":147,"context_line":"            pass"},{"line_number":148,"context_line":"        self.restart_method \u003d restart_method"},{"line_number":149,"context_line":"        self.backdoor_port \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"2578f77f_ee914c67","line":146,"updated":"2026-01-21 10:42:01.000000000","message":"How can this happen?","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"32bafb3d6392abe07a2c9f86f36e22e49f18477b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        self.conf \u003d conf"},{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            self.conf.register_opts(_options.service_opts)"},{"line_number":146,"context_line":"        except cfg.DuplicateOptError:"},{"line_number":147,"context_line":"            pass"},{"line_number":148,"context_line":"        self.restart_method \u003d restart_method"},{"line_number":149,"context_line":"        self.backdoor_port \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"1afbec10_d945c1a4","line":146,"in_reply_to":"2578f77f_ee914c67","updated":"2026-01-21 16:29:23.000000000","message":"I was be more safer here in case services register these config option before they lauch the service and registration here can be ignored but I think we do not want other services to register oslo.service and oslo.service itself should be responsible of registering theior config options so I will remove this protection.","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"af9261b9d973ad4f47df1ce6eaeffe9cb861b734","unresolved":true,"context_lines":[{"line_number":250,"context_line":"        self.conf \u003d conf"},{"line_number":251,"context_line":"        try:"},{"line_number":252,"context_line":"            self.conf.register_opts(_options.service_opts)"},{"line_number":253,"context_line":"        except cfg.DuplicateOptError:"},{"line_number":254,"context_line":"            pass"},{"line_number":255,"context_line":"        self.restart_method \u003d restart_method"},{"line_number":256,"context_line":"        self.no_fork \u003d no_fork"}],"source_content_type":"text/x-python","patch_set":4,"id":"752fd652_5788a866","line":253,"updated":"2026-01-21 10:42:01.000000000","message":"ditto","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"32bafb3d6392abe07a2c9f86f36e22e49f18477b","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        self.conf \u003d conf"},{"line_number":251,"context_line":"        try:"},{"line_number":252,"context_line":"            self.conf.register_opts(_options.service_opts)"},{"line_number":253,"context_line":"        except cfg.DuplicateOptError:"},{"line_number":254,"context_line":"            pass"},{"line_number":255,"context_line":"        self.restart_method \u003d restart_method"},{"line_number":256,"context_line":"        self.no_fork \u003d no_fork"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf79db39_1417731b","line":253,"in_reply_to":"752fd652_5788a866","updated":"2026-01-21 16:29:23.000000000","message":"Done","commit_id":"60b7e9ec6102b51e39bdf791e44584278797978e"}]}
