)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"bd23d594c639433c3478a6cf300d984d5388942e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5cd8f52e_b4b04b1f","updated":"2025-10-15 11:13:25.000000000","message":"recheck failure is not related to patch","commit_id":"779de0bb3911ae7586a316abed840a42e84229ba"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d9cf4368ed3b42a9bd93e968b18e2bb4ad993b97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"95fdc440_a3bdee9a","updated":"2025-10-15 08:15:37.000000000","message":"recheck failure is not related to patch","commit_id":"779de0bb3911ae7586a316abed840a42e84229ba"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f933d73d9af1788fcdeba1dea2f16d6dcc42fa3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8b57522e_8a1543ea","updated":"2026-01-06 22:42:06.000000000","message":"A few comments here","commit_id":"8c1230c455f106aeea6272eca0204419fa5f0f52"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"9b7f6f7ac98e17f4770fb544bb071ab1b35b08b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9759ad25_19777c38","updated":"2026-01-07 18:43:49.000000000","message":"I don\u0027t remember exactly why I needed to make some of the changes, I will revert some of them and see if they fail","commit_id":"8c1230c455f106aeea6272eca0204419fa5f0f52"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"67b76677c30f763fe83e5dd6e944c0a42af80049","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"b476cce1_98a03ebe","updated":"2026-01-09 20:32:43.000000000","message":"The oslo messaging lines I have just moved from the root init file to both the eventlet and threading init file were the ones that caused eventlet to be initialized before threading in my devstack. I think that what made eventlet to be run in all of the patches on the chain","commit_id":"7bdd5bced4ae2aa9a19cc3f701c10daf8742249e"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0fae955af9bb2de7f44f7288620064270db9e66a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"f77f93c0_c21f983f","updated":"2026-01-19 12:47:27.000000000","message":"Reminder to myself: adapt the commit msg","commit_id":"d947dd2f256b64230026855f7e1b820d494977bb"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4e2d09de520b8e12ff6752deea47b5a0e6f51511","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"e009fd5a_1018fb36","updated":"2026-02-05 21:18:33.000000000","message":"LGTM","commit_id":"69e7e0d0f9e980c82fcf4b908964c453e505ea1b"}],"designate/cmd/eventlet/api.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"ff4646424a875e4dd2346dd8df243122f03d00a7","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    gmr_opts.set_defaults(CONF)"},{"line_number":39,"context_line":"    gmr.TextGuruMeditation.setup_autorun(version, conf\u003dCONF)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    if not rpc.initialized():"},{"line_number":42,"context_line":"        rpc.init(CONF)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    server \u003d api_service.Service()"}],"source_content_type":"text/x-python","patch_set":7,"id":"04bae3ec_6a99e144","line":41,"updated":"2025-11-14 16:04:35.000000000","message":"Do we really need to check if we are initialized already here? Is that for unit testing?","commit_id":"932770d25fc09c1a86d12a3d9d695e46c98e08d9"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"85b70383d29d4911a960084962bdd0ed4df229f9","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    gmr_opts.set_defaults(CONF)"},{"line_number":39,"context_line":"    gmr.TextGuruMeditation.setup_autorun(version, conf\u003dCONF)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    if not rpc.initialized():"},{"line_number":42,"context_line":"        rpc.init(CONF)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    server \u003d api_service.Service()"}],"source_content_type":"text/x-python","patch_set":7,"id":"a3ff298b_acb0b2f0","line":41,"in_reply_to":"04bae3ec_6a99e144","updated":"2025-11-14 16:46:53.000000000","message":"tbh I don\u0027t know anymore. I tried with and without across most of the designate services and eventually I lost track of it. I can try removing it from here in another patch, let\u0027s see if it passes CI.","commit_id":"932770d25fc09c1a86d12a3d9d695e46c98e08d9"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f933d73d9af1788fcdeba1dea2f16d6dcc42fa3e","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    gmr_opts.set_defaults(CONF)"},{"line_number":39,"context_line":"    gmr.TextGuruMeditation.setup_autorun(version, conf\u003dCONF)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    if not rpc.initialized():"},{"line_number":42,"context_line":"        rpc.init(CONF)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    server \u003d api_service.Service()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fef9f2f8_2900b040","line":41,"in_reply_to":"a3ff298b_acb0b2f0","updated":"2026-01-06 22:42:06.000000000","message":"This should still be coming in from /service.py _init_ Service mixin as far as I can see, so should not be needed here.","commit_id":"932770d25fc09c1a86d12a3d9d695e46c98e08d9"}],"designate/service.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d6c4ad356341bdc4c18987b1bb51f4d283361fe1","unresolved":true,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Eventet will complain loudly about our use of multiple greentheads"},{"line_number":155,"context_line":"        # reading/writing to the UDP socket at once. Disable this warning."},{"line_number":156,"context_line":"        import eventlet.debug"},{"line_number":157,"context_line":"        eventlet.debug.hub_prevent_multiple_readers(False)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self._dns_socks_tcp \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"b5610991_a89d77cd","line":156,"range":{"start_line":156,"start_character":8,"end_line":156,"end_character":29},"updated":"2025-10-15 13:06:00.000000000","message":"Is this supposed to be here?","commit_id":"779de0bb3911ae7586a316abed840a42e84229ba"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d9dae87ba1359f3f8c08178a88f08bf341b449c3","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Eventet will complain loudly about our use of multiple greentheads"},{"line_number":155,"context_line":"        # reading/writing to the UDP socket at once. Disable this warning."},{"line_number":156,"context_line":"        import eventlet.debug"},{"line_number":157,"context_line":"        eventlet.debug.hub_prevent_multiple_readers(False)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self._dns_socks_tcp \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"38aa17dd_cb4403b4","line":156,"range":{"start_line":156,"start_character":8,"end_line":156,"end_character":29},"in_reply_to":"188fb5a5_f03557ba","updated":"2026-01-19 12:08:08.000000000","message":"Done","commit_id":"779de0bb3911ae7586a316abed840a42e84229ba"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"b3fbc853434bd10c196208f27685c42025f068d9","unresolved":true,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Eventet will complain loudly about our use of multiple greentheads"},{"line_number":155,"context_line":"        # reading/writing to the UDP socket at once. Disable this warning."},{"line_number":156,"context_line":"        import eventlet.debug"},{"line_number":157,"context_line":"        eventlet.debug.hub_prevent_multiple_readers(False)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self._dns_socks_tcp \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"188fb5a5_f03557ba","line":156,"range":{"start_line":156,"start_character":8,"end_line":156,"end_character":29},"in_reply_to":"b5610991_a89d77cd","updated":"2025-10-16 09:05:55.000000000","message":"I wanted to reduce the scope of this import as much as I could (so maybe having it here instead of line 25), but tbh I think I can remove it.","commit_id":"779de0bb3911ae7586a316abed840a42e84229ba"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f933d73d9af1788fcdeba1dea2f16d6dcc42fa3e","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        policy.init()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if not rpc.initialized():"},{"line_number":56,"context_line":"            rpc.init(CONF)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        profiler.setup_profiler((\u0027\u0027.join((\u0027designate-\u0027, self.name))),"}],"source_content_type":"text/x-python","patch_set":7,"id":"1bb7be1e_398f9108","side":"PARENT","line":55,"updated":"2026-01-06 22:42:06.000000000","message":"It\u0027s not clear why this moved. We have to init the RPC code for both eventlet and threading.","commit_id":"de65267c997e751e5caa862f4d8bcb45eb42de51"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"ecc36952c81f90ce5378f6bb69d0166caf61bc98","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        policy.init()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if not rpc.initialized():"},{"line_number":56,"context_line":"            rpc.init(CONF)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        profiler.setup_profiler((\u0027\u0027.join((\u0027designate-\u0027, self.name))),"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a520483_e82e73da","side":"PARENT","line":55,"in_reply_to":"01c16c4a_34b38505","updated":"2026-01-16 11:33:20.000000000","message":"I also didn\u0027t see the failure in the CI. Were you saying that it only happened on your local devstack?","commit_id":"de65267c997e751e5caa862f4d8bcb45eb42de51"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"a526c5dfef2abc2921db3c191f3ba331b5101545","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        policy.init()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if not rpc.initialized():"},{"line_number":56,"context_line":"            rpc.init(CONF)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        profiler.setup_profiler((\u0027\u0027.join((\u0027designate-\u0027, self.name))),"}],"source_content_type":"text/x-python","patch_set":7,"id":"01c16c4a_34b38505","side":"PARENT","line":55,"in_reply_to":"1bb7be1e_398f9108","updated":"2026-01-15 21:23:33.000000000","message":"I still want to see an answer to this. In the final code, these are still duplicated in all of the services as opposed to keeping in the the Service __init__.","commit_id":"de65267c997e751e5caa862f4d8bcb45eb42de51"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"707d5dcb943ba14ae1a18d79e4f773fc287e3f2a","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        policy.init()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if not rpc.initialized():"},{"line_number":56,"context_line":"            rpc.init(CONF)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        profiler.setup_profiler((\u0027\u0027.join((\u0027designate-\u0027, self.name))),"}],"source_content_type":"text/x-python","patch_set":7,"id":"54d32ad4_b091d55e","side":"PARENT","line":55,"in_reply_to":"555e7c2d_2ab1f87b","updated":"2026-01-24 13:55:14.000000000","message":"Makes sense, maybe add a do not merge PR on top of the chain with asserts attached to all key areas that checks if eventlet is accidently applied as a sanity check.","commit_id":"de65267c997e751e5caa862f4d8bcb45eb42de51"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d9dae87ba1359f3f8c08178a88f08bf341b449c3","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        policy.init()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if not rpc.initialized():"},{"line_number":56,"context_line":"            rpc.init(CONF)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        profiler.setup_profiler((\u0027\u0027.join((\u0027designate-\u0027, self.name))),"}],"source_content_type":"text/x-python","patch_set":7,"id":"555e7c2d_2ab1f87b","side":"PARENT","line":55,"in_reply_to":"9a520483_e82e73da","updated":"2026-01-19 12:08:08.000000000","message":"Initially, I got some rabbitmq / oslo messaging timeouts. I moved rpc.init to the start method because I was concerned about fork-safety with oslo_service\u0027s multiprocess workers.\n\nOslo.messaging documentation [0] and code [1] warns that forking after establishing RabbitMQ connections can cause unpredictable behavior. My concern was that calling rpc.init in the __init__ method would create the transport before forking, and all workers would inherit the same connection. (Back then) I suspected that\u0027s why I got the timeouts.\n\n[0] - https://docs.openstack.org/oslo.messaging/latest/reference/transport.html#forking-processes-and-oslo-messaging-transport-objects\n\n[1] - https://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/_drivers/impl_rabbit.py#L1085\n\nAfter reverting the move from __init__ to start, CI still passed, suggesting it wasn\u0027t necessary on designate/service.py. Let me revert those lines in the other Designate services and let\u0027s see if those are necessary.\n\nErik: I got those timeouts in some of the patches I had submitted across the chain. IIRC I got those in the first patch sets of this patch too - see the diffs across the patch sets.\nI will remove those changes in the services (in this patch) to see if we still need them.","commit_id":"de65267c997e751e5caa862f4d8bcb45eb42de51"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f933d73d9af1788fcdeba1dea2f16d6dcc42fa3e","unresolved":true,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        # Eventet will complain loudly about our use of multiple greentheads"},{"line_number":156,"context_line":"        # reading/writing to the UDP socket at once. Disable this warning."},{"line_number":157,"context_line":"        eventlet.debug.hub_prevent_multiple_readers(False)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self._dns_socks_tcp \u003d []"},{"line_number":160,"context_line":"        self._dns_socks_udp \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"4f803084_e4bb85e6","side":"PARENT","line":157,"updated":"2026-01-06 22:42:06.000000000","message":"This logging disable is missing in the end of the patch chain, so I think we are missing this in the eventlet based code. To maintain logging behavior, it should still be disabled in the eventlet code path.\nIt can probably be done in the eventlet mdns cmd file.","commit_id":"de65267c997e751e5caa862f4d8bcb45eb42de51"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f933d73d9af1788fcdeba1dea2f16d6dcc42fa3e","unresolved":true,"context_lines":[{"line_number":76,"context_line":"                  rpc_topic, self.name)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.endpoints \u003d [self]"},{"line_number":79,"context_line":"        self.exception_thread_local \u003d None"},{"line_number":80,"context_line":"        self.notifier \u003d None"},{"line_number":81,"context_line":"        self.rpc_server \u003d None"},{"line_number":82,"context_line":"        self.rpc_topic \u003d rpc_topic"}],"source_content_type":"text/x-python","patch_set":7,"id":"9315bc7d_57026bca","line":79,"updated":"2026-01-06 22:42:06.000000000","message":"Again, why did this need to move into the start()?","commit_id":"932770d25fc09c1a86d12a3d9d695e46c98e08d9"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d9dae87ba1359f3f8c08178a88f08bf341b449c3","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                  rpc_topic, self.name)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.endpoints \u003d [self]"},{"line_number":79,"context_line":"        self.exception_thread_local \u003d None"},{"line_number":80,"context_line":"        self.notifier \u003d None"},{"line_number":81,"context_line":"        self.rpc_server \u003d None"},{"line_number":82,"context_line":"        self.rpc_topic \u003d rpc_topic"}],"source_content_type":"text/x-python","patch_set":7,"id":"ddc5f1b5_3bd5036e","line":79,"in_reply_to":"9315bc7d_57026bca","updated":"2026-01-19 12:08:08.000000000","message":"I suspected that too in my struggle with the rabbitmq timeouts. It looks like it wasn\u0027t necessary.","commit_id":"932770d25fc09c1a86d12a3d9d695e46c98e08d9"}]}
