)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"4c94790136276df6846802a5084b199b0f915c3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c1d38281_fa543cdb","updated":"2022-04-05 18:48:09.000000000","message":"recheck","commit_id":"f92be1bdd011388b2cf763c9ff62b330119362c3"}],"swift/obj/diskfile.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0a1d9822b6219e6818bde68736619da2d9ffc42b","unresolved":true,"context_lines":[{"line_number":2782,"context_line":"                raise DiskFileNotExist()"},{"line_number":2783,"context_line":"            if e.errno \u003d\u003d errno.ENODATA:"},{"line_number":2784,"context_line":"                raise self._quarantine("},{"line_number":2785,"context_line":"                    data_file, \"Failed to open %s: %s\" % (data_file, e))"},{"line_number":2786,"context_line":"            raise"},{"line_number":2787,"context_line":"        self._datafile_metadata \u003d self._failsafe_read_metadata("},{"line_number":2788,"context_line":"            fp, data_file,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f5b6657_414b8636","line":2785,"updated":"2022-03-30 00:16:40.000000000","message":"Feels a little funny that we\u0027ve gotta handle this here instead of up a level in open(), but I think I\u0027ve convinced myself that there aren\u0027t any other ways we\u0027d raise ENODATA here without quarantining.\n\nI\u0027ve got this nagging feeling (particularly after https://review.opendev.org/c/openstack/swift/+/832738) that diskfile could really use a refactor -- there\u0027d be some tangible value in having more of a barrier between our application layer and the OS calls...","commit_id":"2ea222c3648a5a88ae221d9037c94216351443f3"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"4cf53f4b6d46d28b0a77605dc1143887c7f38b2e","unresolved":true,"context_lines":[{"line_number":2782,"context_line":"                raise DiskFileNotExist()"},{"line_number":2783,"context_line":"            if e.errno \u003d\u003d errno.ENODATA:"},{"line_number":2784,"context_line":"                raise self._quarantine("},{"line_number":2785,"context_line":"                    data_file, \"Failed to open %s: %s\" % (data_file, e))"},{"line_number":2786,"context_line":"            raise"},{"line_number":2787,"context_line":"        self._datafile_metadata \u003d self._failsafe_read_metadata("},{"line_number":2788,"context_line":"            fp, data_file,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab8b1052_b32df01d","line":2785,"in_reply_to":"9f5b6657_414b8636","updated":"2022-03-30 18:16:25.000000000","message":"I agree that quarantining belongs a level up, so the next guy does not need to construct a tree of calls while searching for all places that quarantine. Is this -1 and re-do?","commit_id":"2ea222c3648a5a88ae221d9037c94216351443f3"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"1ad51112ed54a0c6a4002cfa412cc3d110650037","unresolved":false,"context_lines":[{"line_number":2782,"context_line":"                raise DiskFileNotExist()"},{"line_number":2783,"context_line":"            if e.errno \u003d\u003d errno.ENODATA:"},{"line_number":2784,"context_line":"                raise self._quarantine("},{"line_number":2785,"context_line":"                    data_file, \"Failed to open %s: %s\" % (data_file, e))"},{"line_number":2786,"context_line":"            raise"},{"line_number":2787,"context_line":"        self._datafile_metadata \u003d self._failsafe_read_metadata("},{"line_number":2788,"context_line":"            fp, data_file,"}],"source_content_type":"text/x-python","patch_set":1,"id":"cd63f040_5c458f79","line":2785,"in_reply_to":"ab8b1052_b32df01d","updated":"2022-03-30 21:14:00.000000000","message":"KK, yeah that makes logical sense. I just put it here because I quickly wanted to fix the prod bug and where we actaully did the open. But it would be nice to have the qurantines in the same level, and we do raise the ENODATA so can just catch it again a level up.\n\nI\u0027ll make a change. Thanks for helping me pick the more maintainable path over the quick fix.","commit_id":"2ea222c3648a5a88ae221d9037c94216351443f3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8df3583c1723b43532eb94f9fd0ee8e59ce7dd72","unresolved":false,"context_lines":[{"line_number":2782,"context_line":"                raise DiskFileNotExist()"},{"line_number":2783,"context_line":"            if e.errno \u003d\u003d errno.ENODATA:"},{"line_number":2784,"context_line":"                raise self._quarantine("},{"line_number":2785,"context_line":"                    data_file, \"Failed to open %s: %s\" % (data_file, e))"},{"line_number":2786,"context_line":"            raise"},{"line_number":2787,"context_line":"        self._datafile_metadata \u003d self._failsafe_read_metadata("},{"line_number":2788,"context_line":"            fp, data_file,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a5f34cc6_bae4bef4","line":2785,"in_reply_to":"cd63f040_5c458f79","updated":"2022-04-04 05:37:52.000000000","message":"\u003e need to construct a tree of calls while searching for all places that quarantine\n\nSeems kind of unavoidable, with the calls to quarantine in _failsafe_read_metadata() -- but I think I still like the new version more.","commit_id":"2ea222c3648a5a88ae221d9037c94216351443f3"}]}
