)]}'
{"roles/check-release-approval/files/check_approval.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"46059bb36865029c0c19dd20a17f4426a6bbc43f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027\\ndata from gerrit is missing required keys:\\n\\n%s\\n\u0027,"},{"line_number":69,"context_line":"                json.dumps(self.raw_data, indent\u003d2))"},{"line_number":70,"context_line":"            LOG.warning(\"Retrying once...\")"},{"line_number":71,"context_line":"            self.load_from_gerrit(args.changeid)"},{"line_number":72,"context_line":"            LOG.warning(\"Second try was successful.\")"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.workspace \u003d args.releases"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_16f70fd4","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":33},"updated":"2020-02-18 14:50:26.000000000","message":"Don\u0027t we need to be worried about this raising an uncaught exception?\n\nMaybe we should use tenacity or retrying to decorate the load_from_gerrit call to have it automatically retry a couple times?","commit_id":"7cf9ad475462b4f08b7a2daa0e71643f0a387e85"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"84a6c03a482c10415af5d4897ee955529c29ba7f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027\\ndata from gerrit is missing required keys:\\n\\n%s\\n\u0027,"},{"line_number":69,"context_line":"                json.dumps(self.raw_data, indent\u003d2))"},{"line_number":70,"context_line":"            LOG.warning(\"Retrying once...\")"},{"line_number":71,"context_line":"            self.load_from_gerrit(args.changeid)"},{"line_number":72,"context_line":"            LOG.warning(\"Second try was successful.\")"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.workspace \u003d args.releases"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_4c689a88","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":33},"in_reply_to":"3fa7e38b_16f70fd4","updated":"2020-02-18 16:18:38.000000000","message":"1) We can\u0027t load extra non-stdlib libraries, and\n2) We can\u0027t retry too may times as it blocks a Zuul executor\nso I thought I\u0027d only retry once.\n\nAlso we used to let the exception bubble up (see \"raise\" in original code), so this is not more worrying than current state?","commit_id":"7cf9ad475462b4f08b7a2daa0e71643f0a387e85"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"56e83e9cf6068bbdb3b0a044f24b0a3983e4f5a3","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027\\ndata from gerrit is missing required keys:\\n\\n%s\\n\u0027,"},{"line_number":69,"context_line":"                json.dumps(self.raw_data, indent\u003d2))"},{"line_number":70,"context_line":"            LOG.warning(\"Retrying once...\")"},{"line_number":71,"context_line":"            self.load_from_gerrit(args.changeid)"},{"line_number":72,"context_line":"            LOG.warning(\"Second try was successful.\")"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.workspace \u003d args.releases"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_677a4ff0","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":33},"in_reply_to":"3fa7e38b_4c689a88","updated":"2020-02-18 17:05:07.000000000","message":"Yeah a decorator would have been a little cleaner, but I am fine with the current state, as it is readable as well, and limited to this very simple case...","commit_id":"7cf9ad475462b4f08b7a2daa0e71643f0a387e85"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"15ba89acdc04edbff4729efc6f1f76ae78e172db","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027\\ndata from gerrit is missing required keys:\\n\\n%s\\n\u0027,"},{"line_number":69,"context_line":"                json.dumps(self.raw_data, indent\u003d2))"},{"line_number":70,"context_line":"            LOG.warning(\"Retrying once...\")"},{"line_number":71,"context_line":"            self.load_from_gerrit(args.changeid)"},{"line_number":72,"context_line":"            LOG.warning(\"Second try was successful.\")"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.workspace \u003d args.releases"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_86f16d9a","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":33},"in_reply_to":"3fa7e38b_677a4ff0","updated":"2020-02-20 08:39:06.000000000","message":"What do you think about to do a sleep few seconds before retrying?\n\nTenacity usage is not allowed but we could easily simulate some parts here, we could only retry once but with a tiny delay to increase the likeliwood to see loading become successful.\n\nI don\u0027t know why gerrit fail to respond here, but I suppose system load could explain why, so by pausing execution few seconds we could let gerrit freeing resources and so avoid failing, without longer Zuul blocking, and we could increase our likelywood to success, I think it\u0027s better than  wast resources by asking for recheck if loading fail one more time.\n\nIt could be a good compromise between resources usages and probabilities to success.\n\nThoughts?","commit_id":"7cf9ad475462b4f08b7a2daa0e71643f0a387e85"}]}
