)]}'
{"tempest/stress/driver.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3983f6105904c119b515d099b7f2568c23a9eff6","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                LOG.warn(\"Process %d hangs. Send SIGKILL.\" % pid)"},{"line_number":104,"context_line":"                os.kill(pid, signal.SIGKILL)"},{"line_number":105,"context_line":"            except Exception:"},{"line_number":106,"context_line":"                LOG.exception(\"Cannot kill process %d\" % pid)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def stress_openstack(tests, duration, max_runs\u003dNone, stop_on_error\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F9pc%3D","line":106,"updated":"2013-09-16 14:20:18.000000000","message":"How about just \"pass\" for here without LOG.exception()?\n\nMy concern is that a process what started killing at line95 and the kill is complete at line102. As the result, os.kill() at line104 fails due to non-existent process and error log message would be output.","commit_id":"50c8084b21b06d6d8ebd720bd66386d3af84c4e4"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"45d4d75f1c1bb5d686450242f23ba4309a58101a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                LOG.warn(\"Process %d hangs. Send SIGKILL.\" % pid)"},{"line_number":104,"context_line":"                os.kill(pid, signal.SIGKILL)"},{"line_number":105,"context_line":"            except Exception:"},{"line_number":106,"context_line":"                LOG.exception(\"Cannot kill process %d\" % pid)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def stress_openstack(tests, duration, max_runs\u003dNone, stop_on_error\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F9kI%3D","line":106,"in_reply_to":"AAAAS3%2F%2F9pc%3D","updated":"2013-09-16 14:43:22.000000000","message":"Done","commit_id":"50c8084b21b06d6d8ebd720bd66386d3af84c4e4"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a120a004c0abe02344a02b5198d3a9951b2e243c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            try:"},{"line_number":102,"context_line":"                pid \u003d process[\u0027process\u0027].pid"},{"line_number":103,"context_line":"                LOG.warn(\"Process %d hangs. Send SIGKILL.\" % pid)"},{"line_number":104,"context_line":"                os.kill(pid, signal.SIGKILL)"},{"line_number":105,"context_line":"            except Exception:"},{"line_number":106,"context_line":"                pass"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2F8UA%3D","line":104,"updated":"2013-09-16 20:17:51.000000000","message":"why aren\u0027t we doing a waitpid to figure out if the processes actually are killed off?\n\nhttp://docs.python.org/2/library/os.html#os.waitpid","commit_id":"a38dfe71d901171fed5cd726f3006078841eafb2"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"0e507163e973aff4ad88141971286cc88294b738","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            try:"},{"line_number":102,"context_line":"                pid \u003d process[\u0027process\u0027].pid"},{"line_number":103,"context_line":"                LOG.warn(\"Process %d hangs. Send SIGKILL.\" % pid)"},{"line_number":104,"context_line":"                os.kill(pid, signal.SIGKILL)"},{"line_number":105,"context_line":"            except Exception:"},{"line_number":106,"context_line":"                pass"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2F7R4%3D","line":104,"in_reply_to":"AAAAS3%2F%2F8UA%3D","updated":"2013-09-17 05:03:01.000000000","message":"SIGKILL is almost unstoppable.\n- The SIGKILL cannot be masked\n- ptrace(2) cannot prevent the delivery.\n- The process can remain as dead if there was a bug in the kernel code path.\n- permission issues\n\nAfter the signal sent the process it will be killed (or we cannot do anything better on the python level).\n\nIn the other hand, you can kill zombies just by waiting on them :)\n\n- http://docs.python.org/2/library/subprocess.html#subprocess.Popen.kill\n- http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait\n\nThe wait is recommended for early killing the zombies anyway.","commit_id":"a38dfe71d901171fed5cd726f3006078841eafb2"}],"tox.ini":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"e24a161eadd1366a717fe0ed174530b28054b7be","unresolved":false,"context_lines":[{"line_number":85,"context_line":"sitepackages \u003d True"},{"line_number":86,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":87,"context_line":"commands \u003d"},{"line_number":88,"context_line":"    python -m tempest/stress/run_stress -a -d 3600 -S"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"[testenv:venv]"},{"line_number":91,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAS3%2F%2F85I%3D","line":88,"updated":"2013-09-16 17:34:33.000000000","message":"why do you change the flags here. I don\u0027t see that this change is necessary for your fix?","commit_id":"a38dfe71d901171fed5cd726f3006078841eafb2"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"89b3ab33c98c27336fd8dcdfc3bf4b568b68ab32","unresolved":false,"context_lines":[{"line_number":85,"context_line":"sitepackages \u003d True"},{"line_number":86,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":87,"context_line":"commands \u003d"},{"line_number":88,"context_line":"    python -m tempest/stress/run_stress -a -d 3600 -S"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"[testenv:venv]"},{"line_number":91,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAS3%2F%2F6Tk%3D","line":88,"in_reply_to":"AAAAS3%2F%2F7RQ%3D","updated":"2013-09-17 10:13:16.000000000","message":"I would be happy to remove my -1 but I haven\u0027t seen an explanation for why this particular change is related to the bug. I also haven\u0027t seen a bug report. Sorry if this seems picky.","commit_id":"a38dfe71d901171fed5cd726f3006078841eafb2"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"0e507163e973aff4ad88141971286cc88294b738","unresolved":false,"context_lines":[{"line_number":85,"context_line":"sitepackages \u003d True"},{"line_number":86,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":87,"context_line":"commands \u003d"},{"line_number":88,"context_line":"    python -m tempest/stress/run_stress -a -d 3600 -S"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"[testenv:venv]"},{"line_number":91,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAS3%2F%2F7RQ%3D","line":88,"in_reply_to":"AAAAS3%2F%2F81U%3D","updated":"2013-09-17 05:03:01.000000000","message":"This is small change, it is in commit message, I do not think we need a new change just for the tox.ini one line, which is related to the fix.","commit_id":"a38dfe71d901171fed5cd726f3006078841eafb2"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"7208722bd3cdde679704363f1384db3fd9e46857","unresolved":false,"context_lines":[{"line_number":85,"context_line":"sitepackages \u003d True"},{"line_number":86,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":87,"context_line":"commands \u003d"},{"line_number":88,"context_line":"    python -m tempest/stress/run_stress -a -d 3600 -S"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"[testenv:venv]"},{"line_number":91,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAS3%2F%2F81U%3D","line":88,"in_reply_to":"AAAAS3%2F%2F85I%3D","updated":"2013-09-16 17:48:37.000000000","message":"This will stop on first error. IMHO it is related to this problem, since it makes no sense to rerun stress tests when an error was already raised.","commit_id":"a38dfe71d901171fed5cd726f3006078841eafb2"}]}
