)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38767,"name":"Wael Halbawi","display_name":"Wael Halbawi","email":"whalbawi@nvidia.com","username":"whalbawi"},"change_message_id":"787db557c2e8a399f6ea41b3c223c0a5eef36c17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f09f3a0e_0349491b","updated":"2026-04-28 16:36:26.000000000","message":"Thanks for expanding coverage!","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fba05bbdf029d722f4788f50c7d5643f18d7c87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"212d8b19_190aeab2","updated":"2026-04-29 09:44:06.000000000","message":"Tim Wael, thanks for reviews, sorry I made a hash (!) of my first attempt.","commit_id":"0dd1252817c78a002bc8425fdfb00e814dc5f688"}],"test/unit/cli/test_relinker.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b0ba17f59cb8eb1e02cd97937497aa7f9dba1534","unresolved":true,"context_lines":[{"line_number":2636,"context_line":"        self.assertEqual(hash1[-3:], hash2[-3:])"},{"line_number":2637,"context_line":""},{"line_number":2638,"context_line":"        # first object is in its original partition so should be cleaned up"},{"line_number":2639,"context_line":"        part0 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power)"},{"line_number":2640,"context_line":"        self._recreate_objects_dir(self.policy)"},{"line_number":2641,"context_line":"        objdir0, fname0, _ \u003d self._create_object(self.policy, part0, hash0)"},{"line_number":2642,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"6af0bb11_aff7a5fd","line":2639,"range":{"start_line":2639,"start_character":45,"end_line":2639,"end_character":50},"updated":"2026-04-28 21:33:54.000000000","message":"Not `hash0`?\n\nIs it supposed to not matter, because `part0 \u003d\u003d part1 \u003d\u003d part2`? If so, I\u0027d prefer we use `hash0` here and add a `self.assertEqual(part0, part1)` below, like we have for parts 1 \u0026 2.","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fba05bbdf029d722f4788f50c7d5643f18d7c87","unresolved":false,"context_lines":[{"line_number":2636,"context_line":"        self.assertEqual(hash1[-3:], hash2[-3:])"},{"line_number":2637,"context_line":""},{"line_number":2638,"context_line":"        # first object is in its original partition so should be cleaned up"},{"line_number":2639,"context_line":"        part0 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power)"},{"line_number":2640,"context_line":"        self._recreate_objects_dir(self.policy)"},{"line_number":2641,"context_line":"        objdir0, fname0, _ \u003d self._create_object(self.policy, part0, hash0)"},{"line_number":2642,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"15238e4d_0721145f","line":2639,"range":{"start_line":2639,"start_character":45,"end_line":2639,"end_character":50},"in_reply_to":"6af0bb11_aff7a5fd","updated":"2026-04-29 09:44:06.000000000","message":"argh, should be hash0, sorry!","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":38767,"name":"Wael Halbawi","display_name":"Wael Halbawi","email":"whalbawi@nvidia.com","username":"whalbawi"},"change_message_id":"787db557c2e8a399f6ea41b3c223c0a5eef36c17","unresolved":true,"context_lines":[{"line_number":2638,"context_line":"        # first object is in its original partition so should be cleaned up"},{"line_number":2639,"context_line":"        part0 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power)"},{"line_number":2640,"context_line":"        self._recreate_objects_dir(self.policy)"},{"line_number":2641,"context_line":"        objdir0, fname0, _ \u003d self._create_object(self.policy, part0, hash0)"},{"line_number":2642,"context_line":""},{"line_number":2643,"context_line":"        self.rb.prepare_increase_partition_power()"},{"line_number":2644,"context_line":"        self.rb.increase_partition_power()"}],"source_content_type":"text/x-python","patch_set":1,"id":"88f81653_394c50da","line":2641,"range":{"start_line":2641,"start_character":17,"end_line":2641,"end_character":23},"updated":"2026-04-28 16:36:26.000000000","message":"nit: `fname0` is not used.","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fba05bbdf029d722f4788f50c7d5643f18d7c87","unresolved":false,"context_lines":[{"line_number":2638,"context_line":"        # first object is in its original partition so should be cleaned up"},{"line_number":2639,"context_line":"        part0 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power)"},{"line_number":2640,"context_line":"        self._recreate_objects_dir(self.policy)"},{"line_number":2641,"context_line":"        objdir0, fname0, _ \u003d self._create_object(self.policy, part0, hash0)"},{"line_number":2642,"context_line":""},{"line_number":2643,"context_line":"        self.rb.prepare_increase_partition_power()"},{"line_number":2644,"context_line":"        self.rb.increase_partition_power()"}],"source_content_type":"text/x-python","patch_set":1,"id":"346b6223_c760f6a5","line":2641,"range":{"start_line":2641,"start_character":17,"end_line":2641,"end_character":23},"in_reply_to":"88f81653_394c50da","updated":"2026-04-29 09:44:06.000000000","message":"Done","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b0ba17f59cb8eb1e02cd97937497aa7f9dba1534","unresolved":true,"context_lines":[{"line_number":2684,"context_line":"        self.assertEqual(hash1[-3:], hash2[-3:])"},{"line_number":2685,"context_line":""},{"line_number":2686,"context_line":"        # first object is in its original partition so should be relinked"},{"line_number":2687,"context_line":"        part0 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power)"},{"line_number":2688,"context_line":"        self.assertLess(part0, 2 ** self.rb.part_power)"},{"line_number":2689,"context_line":"        # other objects are created in the partition they are expected to be in"},{"line_number":2690,"context_line":"        # so they are not actually selected for relink"}],"source_content_type":"text/x-python","patch_set":1,"id":"767ca954_b11879f9","line":2687,"range":{"start_line":2687,"start_character":45,"end_line":2687,"end_character":50},"updated":"2026-04-28 21:33:54.000000000","message":"Again, `hash0` I think.","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fba05bbdf029d722f4788f50c7d5643f18d7c87","unresolved":false,"context_lines":[{"line_number":2684,"context_line":"        self.assertEqual(hash1[-3:], hash2[-3:])"},{"line_number":2685,"context_line":""},{"line_number":2686,"context_line":"        # first object is in its original partition so should be relinked"},{"line_number":2687,"context_line":"        part0 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power)"},{"line_number":2688,"context_line":"        self.assertLess(part0, 2 ** self.rb.part_power)"},{"line_number":2689,"context_line":"        # other objects are created in the partition they are expected to be in"},{"line_number":2690,"context_line":"        # so they are not actually selected for relink"}],"source_content_type":"text/x-python","patch_set":1,"id":"64e238c8_5336e1db","line":2687,"range":{"start_line":2687,"start_character":45,"end_line":2687,"end_character":50},"in_reply_to":"767ca954_b11879f9","updated":"2026-04-29 09:44:06.000000000","message":"Done","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":38767,"name":"Wael Halbawi","display_name":"Wael Halbawi","email":"whalbawi@nvidia.com","username":"whalbawi"},"change_message_id":"787db557c2e8a399f6ea41b3c223c0a5eef36c17","unresolved":true,"context_lines":[{"line_number":2690,"context_line":"        # so they are not actually selected for relink"},{"line_number":2691,"context_line":"        part1 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power + 1)"},{"line_number":2692,"context_line":"        part2 \u003d utils.get_partition_for_hash(hash2, self.rb.part_power + 1)"},{"line_number":2693,"context_line":"        self.assertLess(part1, 2 ** self.rb.part_power)"},{"line_number":2694,"context_line":"        self.assertEqual(part1, part2)"},{"line_number":2695,"context_line":"        self.assertLess(part1, 2 ** self.rb.part_power)"},{"line_number":2696,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"70084b08_a657401c","line":2693,"updated":"2026-04-28 16:36:26.000000000","message":"This is a duplicate of L2695. Did you mean to have the assertion on `part2`?","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fba05bbdf029d722f4788f50c7d5643f18d7c87","unresolved":false,"context_lines":[{"line_number":2690,"context_line":"        # so they are not actually selected for relink"},{"line_number":2691,"context_line":"        part1 \u003d utils.get_partition_for_hash(hash1, self.rb.part_power + 1)"},{"line_number":2692,"context_line":"        part2 \u003d utils.get_partition_for_hash(hash2, self.rb.part_power + 1)"},{"line_number":2693,"context_line":"        self.assertLess(part1, 2 ** self.rb.part_power)"},{"line_number":2694,"context_line":"        self.assertEqual(part1, part2)"},{"line_number":2695,"context_line":"        self.assertLess(part1, 2 ** self.rb.part_power)"},{"line_number":2696,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ed25cda6_2942a80a","line":2693,"in_reply_to":"70084b08_a657401c","updated":"2026-04-29 09:44:06.000000000","message":"my bad.","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":38767,"name":"Wael Halbawi","display_name":"Wael Halbawi","email":"whalbawi@nvidia.com","username":"whalbawi"},"change_message_id":"787db557c2e8a399f6ea41b3c223c0a5eef36c17","unresolved":true,"context_lines":[{"line_number":2695,"context_line":"        self.assertLess(part1, 2 ** self.rb.part_power)"},{"line_number":2696,"context_line":""},{"line_number":2697,"context_line":"        self._recreate_objects_dir(self.policy)"},{"line_number":2698,"context_line":"        objdir0, fname0, _ \u003d self._create_object(self.policy, part0, hash0)"},{"line_number":2699,"context_line":"        self._create_object(self.policy, part1, hash1)"},{"line_number":2700,"context_line":"        self._create_object(self.policy, part2, hash2)"},{"line_number":2701,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"251ac681_87721c2e","line":2698,"updated":"2026-04-28 16:36:26.000000000","message":"nit: `fname0` is not used.","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fba05bbdf029d722f4788f50c7d5643f18d7c87","unresolved":false,"context_lines":[{"line_number":2695,"context_line":"        self.assertLess(part1, 2 ** self.rb.part_power)"},{"line_number":2696,"context_line":""},{"line_number":2697,"context_line":"        self._recreate_objects_dir(self.policy)"},{"line_number":2698,"context_line":"        objdir0, fname0, _ \u003d self._create_object(self.policy, part0, hash0)"},{"line_number":2699,"context_line":"        self._create_object(self.policy, part1, hash1)"},{"line_number":2700,"context_line":"        self._create_object(self.policy, part2, hash2)"},{"line_number":2701,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d226c74c_f63c8404","line":2698,"in_reply_to":"251ac681_87721c2e","updated":"2026-04-29 09:44:06.000000000","message":"Done","commit_id":"dd919c3703f95bbe9f8dc19d07bb5429fa5d0b3a"}]}
