)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d442e5ed97094cd520991f614e5dc7f98c82580b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"10f80203_4614bdc3","updated":"2024-11-14 22:20:08.000000000","message":"I think we ought to have some tests that cover the new recon drops.","commit_id":"7663f99805b1353eaeb16f690e5a696d098c7ba3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3f575c82750b6a72e342efbef30c42353c09c0c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"6eb8e6fd_cfdc9a87","updated":"2024-11-25 17:25:41.000000000","message":"recheck\n\nAFAIK we fixed the CORS test","commit_id":"c9ae45f7e9a20c7f42c87dfc0c97637b2ba8feb7"}],"swift/obj/updater.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3f575c82750b6a72e342efbef30c42353c09c0c0","unresolved":true,"context_lines":[{"line_number":246,"context_line":"            )"},{"line_number":247,"context_line":"        return False"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def add_update(self, account, container, timestamp, *, update_type):"},{"line_number":250,"context_line":"        ac \u003d (account, container)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if ac in self.ac_to_timestamp[update_type]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"e02e1057_6f4b2469","line":249,"updated":"2024-11-25 17:25:41.000000000","message":"a required kwarg w/o a default is amazing!  but we still support py2 so we can\u0027t have nice things.","commit_id":"17be081b1ee03eff694cb8d96dcb087ccdef5ad1"},{"author":{"_account_id":37271,"name":"Chinemerem Chigbo","display_name":"Chinemerem","email":"cchigbo@nvidia.com","username":"chinemerem"},"change_message_id":"6d3555ee217559e5c3c6c756032ad3f49900c8eb","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            )"},{"line_number":247,"context_line":"        return False"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def add_update(self, account, container, timestamp, *, update_type):"},{"line_number":250,"context_line":"        ac \u003d (account, container)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if ac in self.ac_to_timestamp[update_type]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"2e23801b_9b32071d","line":249,"in_reply_to":"e02e1057_6f4b2469","updated":"2024-11-26 19:08:56.000000000","message":"I believe this is for an old Patchset (Patchset 3 from oct 31)","commit_id":"17be081b1ee03eff694cb8d96dcb087ccdef5ad1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"109fa615e5beec70472883df15f6feb29e289eb9","unresolved":true,"context_lines":[{"line_number":815,"context_line":"                    pass"},{"line_number":816,"context_line":"                self.oldest_async_pendings.add_update("},{"line_number":817,"context_line":"                    acct, cont, kwargs[\u0027timestamp\u0027], \u0027unlinks\u0027"},{"line_number":818,"context_line":"                )"},{"line_number":819,"context_line":"            elif redirects:"},{"line_number":820,"context_line":"                # erase any previous successes"},{"line_number":821,"context_line":"                update.pop(\u0027successes\u0027, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"129a3491_7945a6cc","line":818,"range":{"start_line":818,"start_character":16,"end_line":818,"end_character":17},"updated":"2024-11-07 17:16:19.000000000","message":"here as well maybe?","commit_id":"87212c22feac946ca13ea8dbf38a58c5cfee8bbc"},{"author":{"_account_id":37271,"name":"Chinemerem Chigbo","display_name":"Chinemerem","email":"cchigbo@nvidia.com","username":"chinemerem"},"change_message_id":"8911501cf2cc8d01cc7b816f92502fc99ac87f95","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                    pass"},{"line_number":816,"context_line":"                self.oldest_async_pendings.add_update("},{"line_number":817,"context_line":"                    acct, cont, kwargs[\u0027timestamp\u0027], \u0027unlinks\u0027"},{"line_number":818,"context_line":"                )"},{"line_number":819,"context_line":"            elif redirects:"},{"line_number":820,"context_line":"                # erase any previous successes"},{"line_number":821,"context_line":"                update.pop(\u0027successes\u0027, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5c3d6fc6_cd7a398d","line":818,"range":{"start_line":818,"start_character":16,"end_line":818,"end_character":17},"in_reply_to":"129a3491_7945a6cc","updated":"2024-11-08 00:18:09.000000000","message":"Right, the reason I didn\u0027t log these unlinks has to do with this patch: https://review.opendev.org/c/openstack/swift/+/933920 . Essentially, these unlinks are tracking the async pendings that are unlinked to a newer async_pending existing for the same object (outdated_unlinks) vs those that are unlinked due to a successful object update (unlinks). I thought the latter was most relevant to add in this patch.","commit_id":"87212c22feac946ca13ea8dbf38a58c5cfee8bbc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d442e5ed97094cd520991f614e5dc7f98c82580b","unresolved":true,"context_lines":[{"line_number":678,"context_line":"                        self.stats.unlinks +\u003d 1"},{"line_number":679,"context_line":"                        self.logger.increment(\u0027unlinks\u0027)"},{"line_number":680,"context_line":"                        try:"},{"line_number":681,"context_line":"                            os.unlink(update_path)"},{"line_number":682,"context_line":"                        except OSError as e:"},{"line_number":683,"context_line":"                            if e.errno !\u003d errno.ENOENT:"},{"line_number":684,"context_line":"                                raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"4afa09d9_56396ad5","line":681,"updated":"2024-11-14 22:20:08.000000000","message":"I think we want to update stats for these, too.","commit_id":"7663f99805b1353eaeb16f690e5a696d098c7ba3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"99cb496338cb9f811660e271141820a063194bca","unresolved":true,"context_lines":[{"line_number":678,"context_line":"                        self.stats.unlinks +\u003d 1"},{"line_number":679,"context_line":"                        self.logger.increment(\u0027unlinks\u0027)"},{"line_number":680,"context_line":"                        try:"},{"line_number":681,"context_line":"                            os.unlink(update_path)"},{"line_number":682,"context_line":"                        except OSError as e:"},{"line_number":683,"context_line":"                            if e.errno !\u003d errno.ENOENT:"},{"line_number":684,"context_line":"                                raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"fdb364ff_096802b1","line":681,"in_reply_to":"4afa09d9_56396ad5","updated":"2024-11-14 22:35:29.000000000","message":"So https://review.opendev.org/c/openstack/swift/+/933920 brings in a little more context -- but I think we\u0027d still want to have some visibility into how old these unlinks are.\n\nShould we maybe stack these changes? IDK that I care which order.","commit_id":"7663f99805b1353eaeb16f690e5a696d098c7ba3"},{"author":{"_account_id":37271,"name":"Chinemerem Chigbo","display_name":"Chinemerem","email":"cchigbo@nvidia.com","username":"chinemerem"},"change_message_id":"6d3555ee217559e5c3c6c756032ad3f49900c8eb","unresolved":false,"context_lines":[{"line_number":678,"context_line":"                        self.stats.unlinks +\u003d 1"},{"line_number":679,"context_line":"                        self.logger.increment(\u0027unlinks\u0027)"},{"line_number":680,"context_line":"                        try:"},{"line_number":681,"context_line":"                            os.unlink(update_path)"},{"line_number":682,"context_line":"                        except OSError as e:"},{"line_number":683,"context_line":"                            if e.errno !\u003d errno.ENOENT:"},{"line_number":684,"context_line":"                                raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"809dc83f_847dfc65","line":681,"in_reply_to":"fdb364ff_096802b1","updated":"2024-11-26 19:08:56.000000000","message":"Done","commit_id":"7663f99805b1353eaeb16f690e5a696d098c7ba3"}],"test/unit/obj/test_updater.py":[{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"109fa615e5beec70472883df15f6feb29e289eb9","unresolved":true,"context_lines":[{"line_number":2188,"context_line":"        self.manager.add_update(\u0027a1\u0027, \u0027c1\u0027, 900.0, \u0027t1\u0027)"},{"line_number":2189,"context_line":"        self.assertEqual("},{"line_number":2190,"context_line":"            self.manager.ac_to_timestamp[\u0027t1\u0027][(\u0027a1\u0027, \u0027c1\u0027)], 900.0"},{"line_number":2191,"context_line":"        )"},{"line_number":2192,"context_line":"        self.assertNotIn("},{"line_number":2193,"context_line":"            (1000.0, (\u0027a1\u0027, \u0027c1\u0027)), self.manager.sorted_entries[\u0027t1\u0027]"},{"line_number":2194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"b81e3c18_f7167f7b","line":2191,"range":{"start_line":2191,"start_character":8,"end_line":2191,"end_character":9},"updated":"2024-11-07 17:16:19.000000000","message":"Following other test structures, having the closing round bracket on the same line would seem a good idea. Maybe one less line change!\n(Something like line 2126) \nUnless the line characters are \u003c79, they can fit in one line!","commit_id":"87212c22feac946ca13ea8dbf38a58c5cfee8bbc"},{"author":{"_account_id":37271,"name":"Chinemerem Chigbo","display_name":"Chinemerem","email":"cchigbo@nvidia.com","username":"chinemerem"},"change_message_id":"8911501cf2cc8d01cc7b816f92502fc99ac87f95","unresolved":false,"context_lines":[{"line_number":2188,"context_line":"        self.manager.add_update(\u0027a1\u0027, \u0027c1\u0027, 900.0, \u0027t1\u0027)"},{"line_number":2189,"context_line":"        self.assertEqual("},{"line_number":2190,"context_line":"            self.manager.ac_to_timestamp[\u0027t1\u0027][(\u0027a1\u0027, \u0027c1\u0027)], 900.0"},{"line_number":2191,"context_line":"        )"},{"line_number":2192,"context_line":"        self.assertNotIn("},{"line_number":2193,"context_line":"            (1000.0, (\u0027a1\u0027, \u0027c1\u0027)), self.manager.sorted_entries[\u0027t1\u0027]"},{"line_number":2194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f7e6d29_69a4d9c2","line":2191,"range":{"start_line":2191,"start_character":8,"end_line":2191,"end_character":9},"in_reply_to":"b81e3c18_f7167f7b","updated":"2024-11-08 00:18:09.000000000","message":"No problem, I have modified this for the tests","commit_id":"87212c22feac946ca13ea8dbf38a58c5cfee8bbc"}]}
