)]}'
{"neutron/agent/linux/utils.py":[{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"ecf6c9119e510b43b2ac4dd3b0f43a09fcd7f57c","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    try:"},{"line_number":235,"context_line":"        execute([\u0027kill\u0027, \u0027-%d\u0027 % signal, pid], run_as_root\u003drun_as_root)"},{"line_number":236,"context_line":"    except ProcessExecutionError as ex:"},{"line_number":237,"context_line":"        if process_is_running(pid):"},{"line_number":238,"context_line":"            raise"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_3b674db8","line":237,"range":{"start_line":237,"start_character":11,"end_line":237,"end_character":29},"updated":"2016-12-21 11:34:21.000000000","message":"A race is possible here, where if you tried (and failed) to killed a process with \u0027pid\u0027 (for example, the process quit on its own), and prior to this check a new process has been spawned to this pid, this would return a false positive. Do we want to also check the cmdline file?","commit_id":"5c45e52e20f81f13fdb297ffb74c128bc5f08560"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"02d9f96cf1af6f31ecf048c71618a940f0ed8ad9","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    try:"},{"line_number":235,"context_line":"        execute([\u0027kill\u0027, \u0027-%d\u0027 % signal, pid], run_as_root\u003drun_as_root)"},{"line_number":236,"context_line":"    except ProcessExecutionError as ex:"},{"line_number":237,"context_line":"        if process_is_running(pid):"},{"line_number":238,"context_line":"            raise"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_beb34699","line":237,"range":{"start_line":237,"start_character":11,"end_line":237,"end_character":29},"in_reply_to":"1a6eadb0_3b674db8","updated":"2016-12-21 13:28:14.000000000","message":"AFAIK, PIDs are assigned sequentially and then wrap so we shouldn\u0027t care about PIDs being reused in this short windows I think.","commit_id":"5c45e52e20f81f13fdb297ffb74c128bc5f08560"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"9c88cf6daa46f2bb644c2df84f69e6f6f21ab116","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    try:"},{"line_number":235,"context_line":"        execute([\u0027kill\u0027, \u0027-%d\u0027 % signal, pid], run_as_root\u003drun_as_root)"},{"line_number":236,"context_line":"    except ProcessExecutionError as ex:"},{"line_number":237,"context_line":"        if process_is_running(pid):"},{"line_number":238,"context_line":"            raise"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_7489cf25","line":237,"range":{"start_line":237,"start_character":11,"end_line":237,"end_character":29},"in_reply_to":"1a6eadb0_9432eba5","updated":"2016-12-21 14:00:08.000000000","message":"I\u0027m not referring to any test function. I\u0027m just saying that if someone calls kill_process(XXX,...) it doesn\u0027t have to worry about PID XXX belonging to two different processes between L235 and L237","commit_id":"5c45e52e20f81f13fdb297ffb74c128bc5f08560"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"e4ec86c7997503406cad377a49a76a1275bf7246","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    try:"},{"line_number":235,"context_line":"        execute([\u0027kill\u0027, \u0027-%d\u0027 % signal, pid], run_as_root\u003drun_as_root)"},{"line_number":236,"context_line":"    except ProcessExecutionError as ex:"},{"line_number":237,"context_line":"        if process_is_running(pid):"},{"line_number":238,"context_line":"            raise"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_9432eba5","line":237,"range":{"start_line":237,"start_character":11,"end_line":237,"end_character":29},"in_reply_to":"1a6eadb0_beb34699","updated":"2016-12-21 13:57:22.000000000","message":"Who said the window is short? This code is present outside the test funciton you\u0027re referring to, and kill_process might be called long after the process has been first spawned, triggering the above race.","commit_id":"5c45e52e20f81f13fdb297ffb74c128bc5f08560"}]}
