)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"34ed6ed1ef35d3777cf3138645d68da3be8a3673","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3a5e4384_cb13ec80","updated":"2022-09-08 14:29:47.000000000","message":"Performance related comment looks relevant but better than red gate for now, but let\u0027s wait others votes","commit_id":"fcc47271e9ba75f7e02897253a2d1cc6c1e90c66"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"cc1c041ccb4d98d22ba8d8806f4231d169f07696","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8a5905e0_daa953da","in_reply_to":"3a5e4384_cb13ec80","updated":"2022-09-08 14:41:36.000000000","message":"yeah, but there is an alternative which seems better to me https://review.opendev.org/c/openstack/neutron/+/856461 - fix only test and not touch functionality","commit_id":"fcc47271e9ba75f7e02897253a2d1cc6c1e90c66"}],"neutron/db/l3_dvrscheduler_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"d345193c58d15588735cbb1fe4cc06e4a5c40147","unresolved":true,"context_lines":[{"line_number":365,"context_line":"        hosts \u003d [item[0] for item in query if item[0] !\u003d \u0027\u0027]"},{"line_number":366,"context_line":"        return hosts"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":369,"context_line":"    def _get_dvr_subnet_ids_on_host_query(self, context, host):"},{"line_number":370,"context_line":"        host_dvr_dhcp \u003d cfg.CONF.host_dvr_for_dhcp"},{"line_number":371,"context_line":"        query \u003d context.session.query("}],"source_content_type":"text/x-python","patch_set":1,"id":"44102868_eda712c6","line":368,"range":{"start_line":368,"start_character":4,"end_line":368,"end_character":26},"updated":"2022-09-08 09:14:28.000000000","message":"wondering if we really need a CONTEXT_READER for a method that returns query, and not executes any transaction in fact","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"224e0d18ba6fa4e7eb2c9eded4c2c1201c381d6f","unresolved":true,"context_lines":[{"line_number":382,"context_line":"        return query"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":385,"context_line":"    def _get_dvr_subnet_ids_on_host(self, context, host):"},{"line_number":386,"context_line":"        query \u003d self._get_dvr_subnet_ids_on_host_query(context, host)"},{"line_number":387,"context_line":"        return [item[0] for item in query]"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dea0a0a1_0c5c9311","line":385,"range":{"start_line":385,"start_character":8,"end_line":385,"end_character":35},"updated":"2022-09-08 09:12:20.000000000","message":"why we need a method (+ a test for it) that is not used in anywhere code?","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"d88ca679e20eefee18b4d66aa4b2896a5c51a2fe","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        return query"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":385,"context_line":"    def _get_dvr_subnet_ids_on_host(self, context, host):"},{"line_number":386,"context_line":"        query \u003d self._get_dvr_subnet_ids_on_host_query(context, host)"},{"line_number":387,"context_line":"        return [item[0] for item in query]"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fdfe5f84_3c1cec28","line":385,"range":{"start_line":385,"start_character":8,"end_line":385,"end_character":35},"in_reply_to":"b722dc72_f2fc8d8d","updated":"2022-09-08 13:06:46.000000000","message":"Done","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"28c0196fff243a39beaebbbc1f49c02013dba3ff","unresolved":true,"context_lines":[{"line_number":382,"context_line":"        return query"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":385,"context_line":"    def _get_dvr_subnet_ids_on_host(self, context, host):"},{"line_number":386,"context_line":"        query \u003d self._get_dvr_subnet_ids_on_host_query(context, host)"},{"line_number":387,"context_line":"        return [item[0] for item in query]"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"b722dc72_f2fc8d8d","line":385,"range":{"start_line":385,"start_character":8,"end_line":385,"end_character":35},"in_reply_to":"dea0a0a1_0c5c9311","updated":"2022-09-08 11:18:57.000000000","message":"ahh right, will need to revisit this.","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2d458365a35fef7764f0103122b68a7f617a6a40","unresolved":true,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":390,"context_line":"    def _get_dvr_router_ids_for_host(self, context, host):"},{"line_number":391,"context_line":"        subnet_ids_on_host_query \u003d self._get_dvr_subnet_ids_on_host_query("},{"line_number":392,"context_line":"            context, host)"},{"line_number":393,"context_line":"        query \u003d context.session.query(models_v2.Port.device_id).distinct()"},{"line_number":394,"context_line":"        query \u003d query.filter("}],"source_content_type":"text/x-python","patch_set":1,"id":"7162cc88_b9ff0c27","line":391,"range":{"start_line":391,"start_character":40,"end_line":391,"end_character":73},"updated":"2022-09-08 09:50:49.000000000","message":"maybe You can change usage of method here also?","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"28c0196fff243a39beaebbbc1f49c02013dba3ff","unresolved":true,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":390,"context_line":"    def _get_dvr_router_ids_for_host(self, context, host):"},{"line_number":391,"context_line":"        subnet_ids_on_host_query \u003d self._get_dvr_subnet_ids_on_host_query("},{"line_number":392,"context_line":"            context, host)"},{"line_number":393,"context_line":"        query \u003d context.session.query(models_v2.Port.device_id).distinct()"},{"line_number":394,"context_line":"        query \u003d query.filter("}],"source_content_type":"text/x-python","patch_set":1,"id":"35116a0a_1655b701","line":391,"range":{"start_line":391,"start_character":40,"end_line":391,"end_character":73},"in_reply_to":"2e3ef829_47ff4266","updated":"2022-09-08 11:18:57.000000000","message":"yeap right that doesn\u0027t help.","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"432de101764f187d7f3a7b0a1be2f324b8cd5afd","unresolved":true,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":390,"context_line":"    def _get_dvr_router_ids_for_host(self, context, host):"},{"line_number":391,"context_line":"        subnet_ids_on_host_query \u003d self._get_dvr_subnet_ids_on_host_query("},{"line_number":392,"context_line":"            context, host)"},{"line_number":393,"context_line":"        query \u003d context.session.query(models_v2.Port.device_id).distinct()"},{"line_number":394,"context_line":"        query \u003d query.filter("}],"source_content_type":"text/x-python","patch_set":1,"id":"ef52db40_7e21706a","line":391,"range":{"start_line":391,"start_character":40,"end_line":391,"end_character":73},"in_reply_to":"7162cc88_b9ff0c27","updated":"2022-09-08 09:59:53.000000000","message":"I\u0027d check if just removing CONTEXT_READER from _get_dvr_subnet_ids_on_host_query could fix the issue","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c0ed694a9af04b831a1de1f1137bff0e82a966ef","unresolved":true,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":390,"context_line":"    def _get_dvr_router_ids_for_host(self, context, host):"},{"line_number":391,"context_line":"        subnet_ids_on_host_query \u003d self._get_dvr_subnet_ids_on_host_query("},{"line_number":392,"context_line":"            context, host)"},{"line_number":393,"context_line":"        query \u003d context.session.query(models_v2.Port.device_id).distinct()"},{"line_number":394,"context_line":"        query \u003d query.filter("}],"source_content_type":"text/x-python","patch_set":1,"id":"2e3ef829_47ff4266","line":391,"range":{"start_line":391,"start_character":40,"end_line":391,"end_character":73},"in_reply_to":"ef52db40_7e21706a","updated":"2022-09-08 10:35:44.000000000","message":"actually I checked that locally and it was still failing the same way","commit_id":"d3a3c4d35dcf662a6b2745c4b555bab2b6d6e975"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3a52ca6f04a5034aedb0a4c3600083f037ce9ed6","unresolved":true,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":385,"context_line":"    def _get_dvr_router_ids_for_host(self, context, host):"},{"line_number":386,"context_line":"        subnet_ids_on_host_query \u003d self._get_dvr_subnet_ids_on_host("},{"line_number":387,"context_line":"            context, host)"},{"line_number":388,"context_line":"        query \u003d context.session.query(models_v2.Port.device_id).distinct()"},{"line_number":389,"context_line":"        query \u003d query.filter("}],"source_content_type":"text/x-python","patch_set":2,"id":"9de06d4c_08489dac","line":386,"range":{"start_line":386,"start_character":8,"end_line":386,"end_character":32},"updated":"2022-09-08 14:12:40.000000000","message":"I guess this might affect performance now, as originally it\u0027s single DB access, now it\u0027s two","commit_id":"fcc47271e9ba75f7e02897253a2d1cc6c1e90c66"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"f4f424cee952bc0acc1c109bbadff3353cf48eef","unresolved":true,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @db_api.CONTEXT_READER"},{"line_number":385,"context_line":"    def _get_dvr_router_ids_for_host(self, context, host):"},{"line_number":386,"context_line":"        subnet_ids_on_host_query \u003d self._get_dvr_subnet_ids_on_host("},{"line_number":387,"context_line":"            context, host)"},{"line_number":388,"context_line":"        query \u003d context.session.query(models_v2.Port.device_id).distinct()"},{"line_number":389,"context_line":"        query \u003d query.filter("}],"source_content_type":"text/x-python","patch_set":2,"id":"ce0dc5bd_549b1423","line":386,"range":{"start_line":386,"start_character":8,"end_line":386,"end_character":32},"in_reply_to":"9de06d4c_08489dac","updated":"2022-09-08 16:10:42.000000000","message":"Ohkk right, k i think then can consider the other one https://review.opendev.org/c/openstack/neutron/+/856461 but by using db_api.CONTEXT_READER around _get_dvr_subnet_ids_on_host_query as you commented there, can include other fixes from here too.","commit_id":"fcc47271e9ba75f7e02897253a2d1cc6c1e90c66"}]}
