)]}'
{"neutron/tests/common/net_helpers.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"833df0b6d4d02eb19073f81d0dcb0522eb4219b0","unresolved":true,"context_lines":[{"line_number":129,"context_line":"            ns_ip_wrapper.netns.execute("},{"line_number":130,"context_line":"                [ping_command, \u0027-W\u0027, timeout, \u0027-c\u0027, \u00271\u0027, dst_ip],"},{"line_number":131,"context_line":"                privsep_exec\u003dTrue)"},{"line_number":132,"context_line":"        except Exception as exc:"},{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":1,"id":"8a0d804a_1301fdda","line":135,"range":{"start_line":132,"start_character":7,"end_line":135,"end_character":77},"updated":"2021-05-21 07:13:57.000000000","message":"perhaps this will not solve the issue with TestUninterruptedConnectivityOnL2AgentRestart but the ping happens only once instead of 20 which is count in case of that test.","commit_id":"e5787835bcba94d0318a542bd6a41459d601eac6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7b4c52a19b391595fc31dc36edbaea3e209ffe62","unresolved":true,"context_lines":[{"line_number":129,"context_line":"            ns_ip_wrapper.netns.execute("},{"line_number":130,"context_line":"                [ping_command, \u0027-W\u0027, timeout, \u0027-c\u0027, \u00271\u0027, dst_ip],"},{"line_number":131,"context_line":"                privsep_exec\u003dTrue)"},{"line_number":132,"context_line":"        except Exception as exc:"},{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ae507bc_23576b72","line":135,"range":{"start_line":132,"start_character":7,"end_line":135,"end_character":77},"in_reply_to":"8a0d804a_1301fdda","updated":"2021-05-21 08:46:33.000000000","message":"yeah, I think this could be a good idea","commit_id":"e5787835bcba94d0318a542bd6a41459d601eac6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"833df0b6d4d02eb19073f81d0dcb0522eb4219b0","unresolved":true,"context_lines":[{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"},{"line_number":139,"context_line":"        diff \u003d end_time - start_time"},{"line_number":140,"context_line":"        if 0 \u003c diff \u003c interval:"}],"source_content_type":"text/x-python","patch_set":1,"id":"37715a43_bf6ddfe3","line":137,"range":{"start_line":136,"start_character":12,"end_line":137,"end_character":25},"updated":"2021-05-21 07:13:57.000000000","message":"Change the loop to while because this is ugly...","commit_id":"e5787835bcba94d0318a542bd6a41459d601eac6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f518d2363a412d192f30a150d2a9485019915aae","unresolved":true,"context_lines":[{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"},{"line_number":139,"context_line":"        diff \u003d end_time - start_time"},{"line_number":140,"context_line":"        if 0 \u003c diff \u003c interval:"}],"source_content_type":"text/x-python","patch_set":1,"id":"59debd90_08a8ed92","line":137,"range":{"start_line":136,"start_character":12,"end_line":137,"end_character":25},"in_reply_to":"15002c70_81df0b43","updated":"2021-05-21 13:39:22.000000000","message":"thanks I will add it","commit_id":"e5787835bcba94d0318a542bd6a41459d601eac6"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"02d5e811cc1b811277087677299d860de05515de","unresolved":true,"context_lines":[{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"},{"line_number":139,"context_line":"        diff \u003d end_time - start_time"},{"line_number":140,"context_line":"        if 0 \u003c diff \u003c interval:"}],"source_content_type":"text/x-python","patch_set":1,"id":"15002c70_81df0b43","line":137,"range":{"start_line":136,"start_character":12,"end_line":137,"end_character":25},"in_reply_to":"37715a43_bf6ddfe3","updated":"2021-05-21 09:36:31.000000000","message":"or just add \u0027else:\u0027 after \u0027for\u0027 loop body","commit_id":"e5787835bcba94d0318a542bd6a41459d601eac6"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"574e339a14db3089e4c18547072f4f2d034c7f5d","unresolved":true,"context_lines":[{"line_number":125,"context_line":"    # cannot be used and it needs to be done using the following workaround."},{"line_number":126,"context_line":"    for _index in range(count):"},{"line_number":127,"context_line":"        start_time \u003d time.time()"},{"line_number":128,"context_line":"        try:"},{"line_number":129,"context_line":"            ns_ip_wrapper.netns.execute("},{"line_number":130,"context_line":"                [ping_command, \u0027-W\u0027, timeout, \u0027-c\u0027, \u00271\u0027, dst_ip],"},{"line_number":131,"context_line":"                privsep_exec\u003dTrue)"},{"line_number":132,"context_line":"        except Exception as exc:"},{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"},{"line_number":139,"context_line":"        diff \u003d end_time - start_time"},{"line_number":140,"context_line":"        if 0 \u003c diff \u003c interval:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa777305_178782de","line":137,"range":{"start_line":128,"start_character":8,"end_line":137,"end_character":25},"updated":"2021-05-21 13:47:48.000000000","message":"So this changes the logic - previously it raised if any of pings failed, now it will raise only if last ping fails. Isn\u0027t it a violation? For example in L2 interruption case there shouldn\u0027t be any failed pings..","commit_id":"b52c0ac75d8fb01d69b78ac89013cc2a0ea516ca"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8ef084add6f2dd0cda34a30ae992997c25fd7e18","unresolved":true,"context_lines":[{"line_number":125,"context_line":"    # cannot be used and it needs to be done using the following workaround."},{"line_number":126,"context_line":"    for _index in range(count):"},{"line_number":127,"context_line":"        start_time \u003d time.time()"},{"line_number":128,"context_line":"        try:"},{"line_number":129,"context_line":"            ns_ip_wrapper.netns.execute("},{"line_number":130,"context_line":"                [ping_command, \u0027-W\u0027, timeout, \u0027-c\u0027, \u00271\u0027, dst_ip],"},{"line_number":131,"context_line":"                privsep_exec\u003dTrue)"},{"line_number":132,"context_line":"        except Exception as exc:"},{"line_number":133,"context_line":"            LOG.warning(\u0027Failed to ping %(ip)s from %(ns)s for the %(index)s \u0027"},{"line_number":134,"context_line":"                        \u0027try!\u0027,"},{"line_number":135,"context_line":"                        {\u0027ip\u0027: dst_ip, \u0027ns\u0027: src_namespace, \u0027index\u0027: _index})"},{"line_number":136,"context_line":"            if _index \u003d\u003d count - 1:"},{"line_number":137,"context_line":"                raise exc"},{"line_number":138,"context_line":"        end_time \u003d time.time()"},{"line_number":139,"context_line":"        diff \u003d end_time - start_time"},{"line_number":140,"context_line":"        if 0 \u003c diff \u003c interval:"}],"source_content_type":"text/x-python","patch_set":3,"id":"e269dfa6_f55e3c74","line":137,"range":{"start_line":128,"start_character":8,"end_line":137,"end_character":25},"in_reply_to":"fa777305_178782de","updated":"2021-05-24 05:30:51.000000000","message":"You are right, I hope with adding raise_failed_ping I keep all tests keep their original logic.","commit_id":"b52c0ac75d8fb01d69b78ac89013cc2a0ea516ca"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"fe1439faaa588edc35bc7a43e9b3bd95b0ef0c88","unresolved":true,"context_lines":[{"line_number":143,"context_line":"        if 0 \u003c diff \u003c interval:"},{"line_number":144,"context_line":"            # wait at most \"interval\" seconds between individual pings"},{"line_number":145,"context_line":"            time.sleep(interval - diff)"},{"line_number":146,"context_line":"    else:"},{"line_number":147,"context_line":"        if failed_pings \u003e\u003d _index:"},{"line_number":148,"context_line":"            tools.fail(\"Failed to ping %(ip)s from %(ns)s for %(count)s \""},{"line_number":149,"context_line":"                       \"times!\" %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5d25b0bd_e6c62081","line":146,"range":{"start_line":146,"start_character":4,"end_line":146,"end_character":9},"updated":"2021-05-24 08:22:10.000000000","message":"nit: actually \u0027else\u0027 not needed here, as there is no \u0027break\u0027 in the loop","commit_id":"c965e6208fe590fae7baf5f36f47bf313be44229"}],"neutron/tests/fullstack/test_connectivity.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"fe1439faaa588edc35bc7a43e9b3bd95b0ef0c88","unresolved":true,"context_lines":[{"line_number":236,"context_line":"        self._assert_ping_during_agents_restart("},{"line_number":237,"context_line":"            agents, ns0, [ip1], restart_timeout\u003dagent_restart_timeout,"},{"line_number":238,"context_line":"            ping_timeout\u003d2, count\u003dagent_restart_timeout,"},{"line_number":239,"context_line":"            raise_failed_ping\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"2b970fd5_03c71cdc","line":239,"range":{"start_line":239,"start_character":12,"end_line":239,"end_character":35},"updated":"2021-05-24 08:22:10.000000000","message":"There should not be any interruption? Why we allow failed pings?","commit_id":"c965e6208fe590fae7baf5f36f47bf313be44229"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e7b2b5d097e4081170adcf046d7725d4856ab1a1","unresolved":true,"context_lines":[{"line_number":236,"context_line":"        self._assert_ping_during_agents_restart("},{"line_number":237,"context_line":"            agents, ns0, [ip1], restart_timeout\u003dagent_restart_timeout,"},{"line_number":238,"context_line":"            ping_timeout\u003d2, count\u003dagent_restart_timeout,"},{"line_number":239,"context_line":"            raise_failed_ping\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ad48f47e_9bed3245","line":239,"range":{"start_line":239,"start_character":12,"end_line":239,"end_character":35},"in_reply_to":"171dffe7_6a18e8c1","updated":"2021-05-27 07:00:36.000000000","message":"I checked it again and I have vote for this solution:\nhttps://opendev.org/openstack/neutron/src/branch/master/neutron/tests/fullstack/base.py#L118-L128\n\n\"# It is necessary to give agents time to initialize\n # because some crucial steps (e.g. setting up bridge flows)\n # happen only after RPC is established\n\"\n\nBesed on this lb agent log from one of the failures:\nhttps://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_ea7/792505/3/check/neutron-fullstack-with-uwsgi_6/ea75d31/controller/logs/dsvm-fullstack-logs/TestUninterruptedConnectivityOnL2AgentRestart.test_l2_agent_restart_LB%2CFlat-network_/neutron-linuxbridge-agent--2021-05-25--08-56-07-279444_log.txt\n\nping failed @ 2021-05-25 08:56:18.160 (from https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_ea7/792505/3/check/neutron-fullstack-with-uwsgi_6/ea75d31/controller/logs/dsvm-fullstack-logs/TestUninterruptedConnectivityOnL2AgentRestart.test_l2_agent_restart_LB%2CFlat-network_.txt )\n\nand the lb agent at that time was in the middle of initialization:\n....\n2021-05-25 08:56:17.830 107232 DEBUG neutron.plugins.ml2.drivers.agent._common_agent [req-58c1c8d4-c2a9-431c-a2a0-46f80be0e835 - - - - -] Loop iteration exceeded interval (2 vs. 3.0741207599639893)! daemon_loop /home/zuul/src/opendev.org/openstack/neutron/neutron/plugins/ml2/drivers/agent/_common_agent.py:476\n2021-05-25 08:56:19.831 107232 DEBUG neutron.plugins.ml2.drivers.agent._common_agent [req-58c1c8d4-c2a9-431c-a2a0-46f80be0e835 - - - - -] Agent loop found changes! {\u0027current\u0027: set(), \u0027timestamps\u0027: {}, \u0027added\u0027: set(), \u0027removed\u0027: {\u0027tapdd335ce5-14\u0027}, \u0027updated\u0027: set()} daemon_loop /home/zuul/src/opendev.org/openstack/neutron/neutron/plugins/ml2/drivers/agent/_common_agent.py:463\n2021-05-25 08:56:19.832 107232 INFO neutron.agent.securitygroups_rpc [req-58c1c8d4-c2a9-431c-a2a0-46f80be0e835 - - - - -] Remove device filter for {\u0027tapdd335ce5-14\u0027}\n2021-05-25 08:56:19.833 107232 INFO neutron.plugins.ml2.drivers.agent._common_agent [req-58c1c8d4-c2a9-431c-a2a0-46f80be0e835 - - - - -] Attachment tapdd335ce5-14 removed\n2021-05-25 08:56:20.070 107232 DEBUG neutron.api.rpc.handlers.securitygroups_rpc [req-a29c99cc-b8df-4d1a-a2c0-564d756bb715 - - - - -] Security group member updated on remote: [\u002703d8f4d6-c8da-4bf8-bdb5-4b714d861549\u0027] security_groups_member_updated /home/zuul/src/opendev.org/openstack/neutron/neutron/api/rpc/handlers/securitygroups_rpc.py:228\n2021-05-25 08:56:20.074 107232 INFO neutron.agent.securitygroups_rpc [req-a29c99cc-b8df-4d1a-a2c0-564d756bb715 - - - - -] Security group member updated [\u002703d8f4d6-c8da-4bf8-bdb5-4b714d861549\u0027]\n....\n....\n\nOn the other hand I think we could expect that ping is not interrupted, but for looks like it can happen that in fullstack env in a virtual machine things just slower.","commit_id":"c965e6208fe590fae7baf5f36f47bf313be44229"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"381cbea77ef291860b51aeb7416ee7af691cc26a","unresolved":true,"context_lines":[{"line_number":236,"context_line":"        self._assert_ping_during_agents_restart("},{"line_number":237,"context_line":"            agents, ns0, [ip1], restart_timeout\u003dagent_restart_timeout,"},{"line_number":238,"context_line":"            ping_timeout\u003d2, count\u003dagent_restart_timeout,"},{"line_number":239,"context_line":"            raise_failed_ping\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"171dffe7_6a18e8c1","line":239,"range":{"start_line":239,"start_character":12,"end_line":239,"end_character":35},"in_reply_to":"2b970fd5_03c71cdc","updated":"2021-05-25 08:25:09.000000000","message":"After thinking and reading during the weekend, You are right, no ping should be lost, I check if I can find any other patter for linuxbridge","commit_id":"c965e6208fe590fae7baf5f36f47bf313be44229"}]}
