)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1955,"name":"Alan Pevec","email":"alan.pevec@redhat.com","username":"apevec"},"change_message_id":"3351f1013a1b6adb86fd94e13a43ba897b306824","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This solves the same issue as 61e9268bd4b696860eeb5a6ce59ae6bf42b1f0c8"},{"line_number":14,"context_line":"but is a different implementation due to not being able to add the"},{"line_number":15,"context_line":"psutil dependency to an existing release."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ic9d0512a3426c7b85ad88a71ee7062ba2c304322"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAWH%2F%2BQ10%3D","line":15,"updated":"2014-03-28 00:59:21.000000000","message":"This looks like a risky stable-only patch but psutil dep was removed in master I5a1672cfd195099d92578321153c42b8bfd09b7d\nso this implementation was tested in master,","commit_id":"81efc3c79fbd8918770ff8d25a175c2aa0db976d"}],"neutron/agent/linux/async_process.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"d1edf4875c90392bd3831aa028d73a4532938e96","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _get_pid_to_kill(self):"},{"line_number":131,"context_line":"        pid \u003d self._process.pid"},{"line_number":132,"context_line":"        # If root helper was used, two processes will be created:"},{"line_number":133,"context_line":"        #"},{"line_number":134,"context_line":"        #  - a root helper process (e.g. sudo myscript)"},{"line_number":135,"context_line":"        #  - possibly a rootwrap script (e.g. neutron-rootwrap)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAU3%2F%2Fi%2Fo%3D","line":132,"updated":"2014-02-26 01:20:22.000000000","message":"s/two/two or more/","commit_id":"8d1e73be00825d51aa1f920d5194aa12904e04dc"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"d1edf4875c90392bd3831aa028d73a4532938e96","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if self.root_helper:"},{"line_number":142,"context_line":"            try:"},{"line_number":143,"context_line":"                pid \u003d utils.find_child_pids(pid)[0]"},{"line_number":144,"context_line":"            except (IndexError, TypeError):"},{"line_number":145,"context_line":"                # Process is already dead or pid \u003d\u003d None."},{"line_number":146,"context_line":"                return None"},{"line_number":147,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAU3%2F%2FjBA%3D","line":144,"updated":"2014-02-26 01:20:22.000000000","message":"Is the code catching TypeError just in case pid \u003d\u003d None?\n\nIt would read better if you just said this up front.  Then some of this code could be cleaned up.\n\n        if pid and self.root_helper:\n            child_pid \u003d None\n            while True:\n                try:\n                    child_pid \u003d utils.find_child_pids(pid)[0]\n                except IndexError:\n                    # Last process in the tree, return it\n                    return child_pid","commit_id":"8d1e73be00825d51aa1f920d5194aa12904e04dc"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"2ff2896408b1849c23ed58f7b5f7f9fcea7a27af","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if self.root_helper:"},{"line_number":142,"context_line":"            try:"},{"line_number":143,"context_line":"                pid \u003d utils.find_child_pids(pid)[0]"},{"line_number":144,"context_line":"            except (IndexError, TypeError):"},{"line_number":145,"context_line":"                # Process is already dead or pid \u003d\u003d None."},{"line_number":146,"context_line":"                return None"},{"line_number":147,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVX%2F%2FvBo%3D","line":144,"in_reply_to":"AAAAU3%2F%2FbjM%3D","updated":"2014-02-28 17:28:22.000000000","message":"I did notice one more thing.  The current code in master that you introduced with I5a1672cfd195099d92578321153c42b8bfd09b7d does not catch TypeError here.  As a backport, this should match the change made on master.  Or, is there something I\u0027m missing?","commit_id":"8d1e73be00825d51aa1f920d5194aa12904e04dc"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"024676294fe95089c4e59ccae85d12f49246b750","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if self.root_helper:"},{"line_number":142,"context_line":"            try:"},{"line_number":143,"context_line":"                pid \u003d utils.find_child_pids(pid)[0]"},{"line_number":144,"context_line":"            except (IndexError, TypeError):"},{"line_number":145,"context_line":"                # Process is already dead or pid \u003d\u003d None."},{"line_number":146,"context_line":"                return None"},{"line_number":147,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAU3%2F%2FbjM%3D","line":144,"in_reply_to":"AAAAU3%2F%2Fdmo%3D","updated":"2014-02-26 17:28:31.000000000","message":"Right, I keep forgetting when I\u0027m reviewing backports.  ;)","commit_id":"8d1e73be00825d51aa1f920d5194aa12904e04dc"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9df1faa6e7bde447b1d4be40568cdeb448d1246d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if self.root_helper:"},{"line_number":142,"context_line":"            try:"},{"line_number":143,"context_line":"                pid \u003d utils.find_child_pids(pid)[0]"},{"line_number":144,"context_line":"            except (IndexError, TypeError):"},{"line_number":145,"context_line":"                # Process is already dead or pid \u003d\u003d None."},{"line_number":146,"context_line":"                return None"},{"line_number":147,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAU3%2F%2Fdmo%3D","line":144,"in_reply_to":"AAAAU3%2F%2FjBA%3D","updated":"2014-02-26 13:49:31.000000000","message":"This is just a backport, so I don\u0027t want to make style changes.","commit_id":"8d1e73be00825d51aa1f920d5194aa12904e04dc"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"ce1acdf620ac67e1c9038e87cdfdc95c63b6f8f5","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if self.root_helper:"},{"line_number":142,"context_line":"            try:"},{"line_number":143,"context_line":"                pid \u003d utils.find_child_pids(pid)[0]"},{"line_number":144,"context_line":"            except (IndexError, TypeError):"},{"line_number":145,"context_line":"                # Process is already dead or pid \u003d\u003d None."},{"line_number":146,"context_line":"                return None"},{"line_number":147,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVX%2F%2Ftyg%3D","line":144,"in_reply_to":"AAAAVX%2F%2FvBo%3D","updated":"2014-02-28 20:14:17.000000000","message":"Nice catch. Thanks.","commit_id":"8d1e73be00825d51aa1f920d5194aa12904e04dc"}]}
