)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"a0f71ba58a7b9bdc6d7a428b3689c471d32ea580","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7b291986_bd1a531f","updated":"2023-05-19 20:15:27.000000000","message":"lgtm","commit_id":"8c14d63808f54be168eb0e038a46c579286c934e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b2c1922e6fb0467f0878aae591418373a1335e76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e23aa091_6c3a729c","updated":"2023-06-07 16:36:31.000000000","message":"We talked in IRC about adding a hardcoded random interval (0, 10) of 10 seconds.","commit_id":"9ee9c0e0d55bc405f83a51d428a8e6b08d9d23bb"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"9b4cdf5d4472219b7f1d668eb98791131ad15e7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"69768b06_b247dedf","updated":"2023-06-14 16:19:32.000000000","message":"++","commit_id":"5e0c102830a18850e35f746160867613e96d1dbc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9e4372d765c858a55be02f875a956603d1a0b2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"282192d2_6e66f46a","updated":"2023-06-14 18:02:21.000000000","message":"LGTM and we expect this could help with some gate failures we\u0027ve observed recently involving failure to bind ports.","commit_id":"5e0c102830a18850e35f746160867613e96d1dbc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e32832a2f732f26c719389a534d32c7a29643543","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"69e5b5cd_ddb17dba","updated":"2023-06-09 08:46:10.000000000","message":"recheck functional","commit_id":"5e0c102830a18850e35f746160867613e96d1dbc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f551bc9bcd27103514ded23b9caeee055513a53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e3683ffb_87a64299","updated":"2023-06-14 19:32:06.000000000","message":"recheck tempest-integrated-networking TIMED_OUT\n\n(base devstack-tempest job timeout is 7200 seconds)","commit_id":"5e0c102830a18850e35f746160867613e96d1dbc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"43f54a03fa9c34bd490a843b15957dc26c5dac8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7fcdfbfc_6e2ff70e","updated":"2023-06-14 16:30:31.000000000","message":"thanks","commit_id":"5e0c102830a18850e35f746160867613e96d1dbc"}],"neutron/agent/ovn/metadata/agent.py":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"a0f71ba58a7b9bdc6d7a428b3689c471d32ea580","unresolved":true,"context_lines":[{"line_number":238,"context_line":"            interval \u003d 0"},{"line_number":239,"context_line":"            self.first_run \u003d False"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            # we ocationally see port binding failed errors due to a"},{"line_number":242,"context_line":"            # the ml2 driver refusing to bind the port to a dead agent"},{"line_number":243,"context_line":"            # so we increase the frequency of heatbeats by deviding by"},{"line_number":244,"context_line":"            # 3 instead of 2 to make that less likely while still"},{"line_number":245,"context_line":"            # spreading the updates."},{"line_number":246,"context_line":"            interval \u003d randint(0, cfg.CONF.agent_down_time // 3)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        LOG.debug(\"Delaying updating chassis table for %s seconds\", interval)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d6455aeb_5d0b5a0c","line":245,"range":{"start_line":241,"start_character":14,"end_line":245,"end_character":36},"updated":"2023-05-19 20:15:27.000000000","message":"nit: run the comment through spell check.","commit_id":"8c14d63808f54be168eb0e038a46c579286c934e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8f5dc6b7d6111f442d5ce10914b58ec0c26c9218","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            interval \u003d 0"},{"line_number":239,"context_line":"            self.first_run \u003d False"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            # we ocationally see port binding failed errors due to a"},{"line_number":242,"context_line":"            # the ml2 driver refusing to bind the port to a dead agent"},{"line_number":243,"context_line":"            # so we increase the frequency of heatbeats by deviding by"},{"line_number":244,"context_line":"            # 3 instead of 2 to make that less likely while still"},{"line_number":245,"context_line":"            # spreading the updates."},{"line_number":246,"context_line":"            interval \u003d randint(0, cfg.CONF.agent_down_time // 3)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        LOG.debug(\"Delaying updating chassis table for %s seconds\", interval)"}],"source_content_type":"text/x-python","patch_set":1,"id":"275526d4_7fbc3bf4","line":245,"range":{"start_line":241,"start_character":14,"end_line":245,"end_character":36},"in_reply_to":"d6455aeb_5d0b5a0c","updated":"2023-05-31 12:25:31.000000000","message":"done","commit_id":"8c14d63808f54be168eb0e038a46c579286c934e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfbf40e85897a40e7a9fb988780803984882187e","unresolved":true,"context_lines":[{"line_number":235,"context_line":"                        str(row.nb_cfg)})).execute()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        if self.first_run:"},{"line_number":238,"context_line":"            interval \u003d 0"},{"line_number":239,"context_line":"            self.first_run \u003d False"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            interval \u003d randint(0, cfg.CONF.agent_down_time // 2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"982e0d9a_074a8801","side":"PARENT","line":238,"range":{"start_line":238,"start_character":12,"end_line":238,"end_character":20},"updated":"2023-06-08 12:04:11.000000000","message":"by the way i changed this because this is generally an anti pattern.\n\nwhile python does not create a scope when you create an if defining a variable in a branch that is used out side of an if is generally unsafe.\n\nif you for get to do that in one of the branches you will get attribute errors.\n\nso i fixed that by defining it before the branch and also renaming it ot better signify what its used for.","commit_id":"181177fe885f49f2d31f3e175d33efbf21ac3676"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"9b4cdf5d4472219b7f1d668eb98791131ad15e7e","unresolved":true,"context_lines":[{"line_number":235,"context_line":"                        str(row.nb_cfg)})).execute()"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        if self.first_run:"},{"line_number":238,"context_line":"            interval \u003d 0"},{"line_number":239,"context_line":"            self.first_run \u003d False"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            interval \u003d randint(0, cfg.CONF.agent_down_time // 2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ea6c2406_eec8d036","side":"PARENT","line":238,"range":{"start_line":238,"start_character":12,"end_line":238,"end_character":20},"in_reply_to":"982e0d9a_074a8801","updated":"2023-06-14 16:19:32.000000000","message":"Agree with you, sounds better to avoid such pattern, thanks Sean.","commit_id":"181177fe885f49f2d31f3e175d33efbf21ac3676"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfbf40e85897a40e7a9fb988780803984882187e","unresolved":true,"context_lines":[{"line_number":243,"context_line":"            # if all agents heartbeat at the same time, they will all"},{"line_number":244,"context_line":"            # cause a load spike on the server.  To mitigate that we"},{"line_number":245,"context_line":"            # need to spread out the load by introducing a random delay."},{"line_number":246,"context_line":"            max_delay \u003d min(cfg.CONF.agent_down_time // 3, 10)"},{"line_number":247,"context_line":"            delay \u003d randint(0, max_delay)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        LOG.debug(\"Delaying updating chassis table for %s seconds\", delay)"}],"source_content_type":"text/x-python","patch_set":3,"id":"2d83fef5_6fc32d1f","line":246,"updated":"2023-06-08 12:04:11.000000000","message":"i debated if i should just entrily hardcode it or not i can simplfy or\nwe coudl keep it like this.\n\nthis is realy only hear to cater for the case where cfg.CONF.agent_down_time  is \u003c10 but i dont know if that is overkill for this usecase","commit_id":"aec2af13eb1657052061386b35fd954e9d03f49a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e32832a2f732f26c719389a534d32c7a29643543","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            # if all agents heartbeat at the same time, they will all"},{"line_number":244,"context_line":"            # cause a load spike on the server.  To mitigate that we"},{"line_number":245,"context_line":"            # need to spread out the load by introducing a random delay."},{"line_number":246,"context_line":"            max_delay \u003d min(cfg.CONF.agent_down_time // 3, 10)"},{"line_number":247,"context_line":"            delay \u003d randint(0, max_delay)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        LOG.debug(\"Delaying updating chassis table for %s seconds\", delay)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1d09f6_dc7afb6f","line":246,"in_reply_to":"2d83fef5_6fc32d1f","updated":"2023-06-09 08:46:10.000000000","message":"10 seconds is a reasonable amount of time to be defined as the upper limit for this random delay. Above this limit, we can hit what you have seen in the Nova CI.","commit_id":"aec2af13eb1657052061386b35fd954e9d03f49a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a9e4372d765c858a55be02f875a956603d1a0b2b","unresolved":true,"context_lines":[{"line_number":238,"context_line":"            interval \u003d 0"},{"line_number":239,"context_line":"            self.first_run \u003d False"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            interval \u003d randint(0, cfg.CONF.agent_down_time // 2)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        LOG.debug(\"Delaying updating chassis table for %s seconds\", interval)"},{"line_number":244,"context_line":"        timer \u003d threading.Timer(interval, _update_chassis, [self, row])"}],"source_content_type":"text/x-python","patch_set":6,"id":"aefd57a3_7818ea19","side":"PARENT","line":241,"updated":"2023-06-14 18:02:21.000000000","message":"Note to self: the default value for CONF.agent_down_time is 75 seconds [1], so prior to this change it was possible for the delay to be up to 37 seconds.\n\n[1] https://github.com/openstack/neutron/blob/6626fd9c9c9b75ac28b5f85e6a92a24f55e9c44e/neutron/conf/agent/database/agents_db.py#L19","commit_id":"181177fe885f49f2d31f3e175d33efbf21ac3676"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"9b4cdf5d4472219b7f1d668eb98791131ad15e7e","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        if self.first_run:"},{"line_number":239,"context_line":"            self.first_run \u003d False"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            # We occasionally see port binding failed errors due to"},{"line_number":242,"context_line":"            # the ml2 driver refusing to bind the port to a dead agent."},{"line_number":243,"context_line":"            # if all agents heartbeat at the same time, they will all"},{"line_number":244,"context_line":"            # cause a load spike on the server. To mitigate that we"}],"source_content_type":"text/x-python","patch_set":6,"id":"23ce254e_c15ab3b9","line":241,"updated":"2023-06-14 16:19:32.000000000","message":"Sounds good","commit_id":"5e0c102830a18850e35f746160867613e96d1dbc"}]}
