)]}'
{"tests/helper.py":[{"author":{"_account_id":1054,"name":"Darragh Bailey","email":"daragh.bailey@gmail.com","username":"dbailey-k"},"change_message_id":"e055a6a6ad4decf20dfc2428c1bef759ea117b66","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            logger.info(\"Running function \u0027%s\u0027 finished with result \u0027%s\u0027, \""},{"line_number":29,"context_line":"                        \"and stack:\\n\" % (func.__name__, result,"},{"line_number":30,"context_line":"                                          traceback.format_stack()))"},{"line_number":31,"context_line":"            return result"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # although creating a separate process is expensive it\u0027s the only way to"},{"line_number":34,"context_line":"    # ensure cross platform that we can cleanly terminate after timeout"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_ebd54eb9","line":31,"updated":"2015-08-17 15:23:39.000000000","message":"Need a better way to send this information back to the calling process and for it to be outputted from there instead of using logging here. That will help the reuse.","commit_id":"664cd7ebce71268a885531f25bcc2b708298beaf"},{"author":{"_account_id":1054,"name":"Darragh Bailey","email":"daragh.bailey@gmail.com","username":"dbailey-k"},"change_message_id":"e055a6a6ad4decf20dfc2428c1bef759ea117b66","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                args\u003dargs, kwargs\u003dkwargs)"},{"line_number":37,"context_line":"    p.start()"},{"line_number":38,"context_line":"    p.join(seconds)"},{"line_number":39,"context_line":"    p.terminate()"},{"line_number":40,"context_line":"    if p.exitcode is None:"},{"line_number":41,"context_line":"        logger.info(\"Running function \u0027%s\u0027 did not finish\" % func.__name__)"},{"line_number":42,"context_line":"        raise TestsTimeoutException"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_2b090696","line":39,"updated":"2015-08-17 15:23:39.000000000","message":"So I suspect this is my actual problem, I need to make sure that terminate is called afterwards, otherwise the exitcode my be set to \u0027-15\u0027 which is SIGTERM, and would correspond to a forced terminate.\n\nMaybe switch to:\n\n    if p.is_alive():\n        p.terminate()\n        raise TestsTimeoutException\n    else:\n        # output information about the exit code/tracebacks if avail","commit_id":"664cd7ebce71268a885531f25bcc2b708298beaf"}]}
