)]}'
{"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_ryuapp.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"025cbaa4efaf945eac89b257b20a3de125ee18bc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ryu.ofproto import ofproto_v1_3"},{"line_number":24,"context_line":"from ryu.ofproto import oxm_fields"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo_log import log as logging"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from neutron._i18n import _LE"},{"line_number":29,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.openflow.native \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_aaaa6cd0","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":35},"updated":"2016-11-22 14:50:04.000000000","message":"This is third-party lib. Please move \"import ryu.app.ofctl.api\" above.","commit_id":"5ebab27802fc26c8293da6f69e7ae8dd7a81e96f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"731a3a58d9fbae4fbb8bb3624ec7c0b9e90b8810","unresolved":false,"context_lines":[{"line_number":40,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":41,"context_line":"    try:"},{"line_number":42,"context_line":"        ovs_agent.main(bridge_classes)"},{"line_number":43,"context_line":"    except Exception:"},{"line_number":44,"context_line":"        LOG.exception(_LE(\"Agent main thread died of an exception\"))"},{"line_number":45,"context_line":"    # The following call terminates Ryu\u0027s AppManager.run_apps(),"},{"line_number":46,"context_line":"    # which is needed for clean shutdown of an agent process."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_4c13aa5c","line":43,"updated":"2016-11-22 18:17:14.000000000","message":"Can we come up with a test that would validate the behaviour? Would a test that starts the agent, then kills it with SIGKILL, then restarts the agent catch the issue? Or is it too rare to catch with a test?","commit_id":"3e45c19eedccd800d7c6e5f0fce57295cf3a7b02"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"65703a68f94786a8ab4a558fb32f5482e49f6b81","unresolved":false,"context_lines":[{"line_number":40,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":41,"context_line":"    try:"},{"line_number":42,"context_line":"        ovs_agent.main(bridge_classes)"},{"line_number":43,"context_line":"    except Exception:"},{"line_number":44,"context_line":"        LOG.exception(_LE(\"Agent main thread died of an exception\"))"},{"line_number":45,"context_line":"    # The following call terminates Ryu\u0027s AppManager.run_apps(),"},{"line_number":46,"context_line":"    # which is needed for clean shutdown of an agent process."}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_66ce0e85","line":43,"in_reply_to":"7a77a97e_4c13aa5c","updated":"2016-11-23 09:18:28.000000000","message":"Ihar,\n\nif we want to reproduce the mentioned bug, helper processes must be killed with good timings.\nRaising an exception inside agent_main can be a test alternative, though.","commit_id":"3e45c19eedccd800d7c6e5f0fce57295cf3a7b02"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d0a2adccba7965e1804f02a1942e0d72203a061e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":41,"context_line":"    try:"},{"line_number":42,"context_line":"        ovs_agent.main(bridge_classes)"},{"line_number":43,"context_line":"    except Exception:"},{"line_number":44,"context_line":"        LOG.exception(_LE(\"Agent main thread died of an exception\"))"},{"line_number":45,"context_line":"    # The following call terminates Ryu\u0027s AppManager.run_apps(),"},{"line_number":46,"context_line":"    # which is needed for clean shutdown of an agent process."}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_d8dc3149","line":43,"in_reply_to":"7a77a97e_4c13aa5c","updated":"2016-11-22 22:12:32.000000000","message":"sounds race-y","commit_id":"3e45c19eedccd800d7c6e5f0fce57295cf3a7b02"}]}
