)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"51e0e2edd0702aa970a44fdefba771cedc45294c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"95785eaa_6c04ecad","updated":"2026-10-15 13:56:59.000000000","message":"This looks good. Adds `X-Container-Sysmeta-Shard-Authority` to prevent split-brain when two replicas both try to drive cleaving. The concept is correct, but there is a subtle broker reference inconsistency between the scan-time write and the clearing condition that I know it is fixed in 1003413 and I just think it is worth a mention.","commit_id":"78dab0b3d26b4ccbb41db344be4e5394c901aa1d"}],"swift/container/sharder.py":[{"author":{"_account_id":38368,"name":"Christian Ohanaja","display_name":"Christian Ohanaja","email":"cohanaja@nvidia.com","username":"cohanaja"},"change_message_id":"02ecffd55b1b70b27fc7c039eafc18353416a810","unresolved":true,"context_lines":[{"line_number":2294,"context_line":"            modified_shard_ranges.append(own_shard_range)"},{"line_number":2295,"context_line":"            broker.merge_shard_ranges(modified_shard_ranges)"},{"line_number":2296,"context_line":"            # pop the authority"},{"line_number":2297,"context_line":"            shard_auth_key \u003d \u0027X-Container-Sysmeta-Shard-Authority\u0027"},{"line_number":2298,"context_line":"            if broker.get_sharding_sysmeta(shard_auth_key) \u003d\u003d \\"},{"line_number":2299,"context_line":"                    broker.get_brokers()[0].get_info()[\u0027id\u0027]:"},{"line_number":2300,"context_line":"                broker.set_sharding_sysmeta(\"Authority\", \"\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"6aa77df5_db913437","line":2297,"range":{"start_line":2297,"start_character":0,"end_line":2297,"end_character":66},"updated":"2026-09-03 00:02:27.000000000","message":"a couple layers down in get_sharding_sysmeta_with_timestamps, the X-Container-Sysmeta-Shard- bits get skipped to get to just the \u0027Authority\u0027 part... so I\u0027m not sure if this conditional actually runs","commit_id":"eb63fac6fe545e615dc20e30750405de2d89d6a9"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8111994bf8292b48336a717c81c7a5430616e3d4","unresolved":true,"context_lines":[{"line_number":2294,"context_line":"            modified_shard_ranges.append(own_shard_range)"},{"line_number":2295,"context_line":"            broker.merge_shard_ranges(modified_shard_ranges)"},{"line_number":2296,"context_line":"            # pop the authority"},{"line_number":2297,"context_line":"            shard_auth_key \u003d \u0027X-Container-Sysmeta-Shard-Authority\u0027"},{"line_number":2298,"context_line":"            if broker.get_sharding_sysmeta(shard_auth_key) \u003d\u003d \\"},{"line_number":2299,"context_line":"                    broker.get_brokers()[0].get_info()[\u0027id\u0027]:"},{"line_number":2300,"context_line":"                broker.set_sharding_sysmeta(\"Authority\", \"\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"a73b6228_0dc90430","line":2297,"range":{"start_line":2297,"start_character":0,"end_line":2297,"end_character":66},"in_reply_to":"6aa77df5_db913437","updated":"2026-09-04 03:36:55.000000000","message":"Oh yeah! Great spot, opps! Thanks Christian!","commit_id":"eb63fac6fe545e615dc20e30750405de2d89d6a9"},{"author":{"_account_id":38368,"name":"Christian Ohanaja","display_name":"Christian Ohanaja","email":"cohanaja@nvidia.com","username":"cohanaja"},"change_message_id":"d29e11ee20b469857c749ca7dad421fbfd575da0","unresolved":false,"context_lines":[{"line_number":2294,"context_line":"            modified_shard_ranges.append(own_shard_range)"},{"line_number":2295,"context_line":"            broker.merge_shard_ranges(modified_shard_ranges)"},{"line_number":2296,"context_line":"            # pop the authority"},{"line_number":2297,"context_line":"            shard_auth_key \u003d \u0027X-Container-Sysmeta-Shard-Authority\u0027"},{"line_number":2298,"context_line":"            if broker.get_sharding_sysmeta(shard_auth_key) \u003d\u003d \\"},{"line_number":2299,"context_line":"                    broker.get_brokers()[0].get_info()[\u0027id\u0027]:"},{"line_number":2300,"context_line":"                broker.set_sharding_sysmeta(\"Authority\", \"\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"e0f5d4ac_fb2993fa","line":2297,"range":{"start_line":2297,"start_character":0,"end_line":2297,"end_character":66},"in_reply_to":"a73b6228_0dc90430","updated":"2026-09-08 09:49:26.000000000","message":"Done","commit_id":"eb63fac6fe545e615dc20e30750405de2d89d6a9"},{"author":{"_account_id":38368,"name":"Christian Ohanaja","display_name":"Christian Ohanaja","email":"cohanaja@nvidia.com","username":"cohanaja"},"change_message_id":"d29e11ee20b469857c749ca7dad421fbfd575da0","unresolved":true,"context_lines":[{"line_number":1927,"context_line":"        shard_ranges \u003d make_shard_ranges("},{"line_number":1928,"context_line":"            broker, shard_data, self.shards_account_prefix)"},{"line_number":1929,"context_line":"        broker.merge_shard_ranges(shard_ranges)"},{"line_number":1930,"context_line":"        db_id \u003d broker.get_info()[\u0027id\u0027]"},{"line_number":1931,"context_line":"        # mark this broker as the authority, ie who wrote the shards AND"},{"line_number":1932,"context_line":"        # responsible to push to CLEAVED if no one else agrees."},{"line_number":1933,"context_line":"        broker.set_sharding_sysmeta(\"Authority\", db_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"adac983b_8d34219d","line":1930,"range":{"start_line":1930,"start_character":0,"end_line":1930,"end_character":39},"updated":"2026-09-08 09:49:26.000000000","message":"Since find_shard_ranges is called on a container during sharding, this should be the fresh db_id,","commit_id":"78dab0b3d26b4ccbb41db344be4e5394c901aa1d"},{"author":{"_account_id":38368,"name":"Christian Ohanaja","display_name":"Christian Ohanaja","email":"cohanaja@nvidia.com","username":"cohanaja"},"change_message_id":"d29e11ee20b469857c749ca7dad421fbfd575da0","unresolved":true,"context_lines":[{"line_number":2294,"context_line":"            modified_shard_ranges.append(own_shard_range)"},{"line_number":2295,"context_line":"            broker.merge_shard_ranges(modified_shard_ranges)"},{"line_number":2296,"context_line":"            if broker.get_sharding_sysmeta(\u0027Authority\u0027) \u003d\u003d \\"},{"line_number":2297,"context_line":"                    broker.get_brokers()[0].get_info()[\u0027id\u0027]:"},{"line_number":2298,"context_line":"                broker.set_sharding_sysmeta(\"Authority\", \"\")"},{"line_number":2299,"context_line":"            if broker.set_sharded_state():"},{"line_number":2300,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"2b8d5963_ebd13a2a","line":2297,"range":{"start_line":2297,"start_character":0,"end_line":2297,"end_character":61},"updated":"2026-09-08 09:49:26.000000000","message":"but over here, it looks like when we\u0027re clearing the Authority bit, we compare it to the retiring (get_brokers()[0] instead of [1]) db\u0027s id, so if I\u0027m grasping this right this also gets skipped","commit_id":"78dab0b3d26b4ccbb41db344be4e5394c901aa1d"}],"test/unit/container/test_sharder.py":[{"author":{"_account_id":38368,"name":"Christian Ohanaja","display_name":"Christian Ohanaja","email":"cohanaja@nvidia.com","username":"cohanaja"},"change_message_id":"02ecffd55b1b70b27fc7c039eafc18353416a810","unresolved":true,"context_lines":[{"line_number":3439,"context_line":"        self.assertFalse(warning_lines)"},{"line_number":3440,"context_line":""},{"line_number":3441,"context_line":"        # and shard db_id authority is cleared:"},{"line_number":3442,"context_line":"        self.assertFalse(broker.get_sharding_sysmeta(\u0027Authority\u0027))"},{"line_number":3443,"context_line":""},{"line_number":3444,"context_line":"        sharder.logger.clear()"},{"line_number":3445,"context_line":"        return broker"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a13fe22_b9be7cd3","line":3442,"range":{"start_line":3442,"start_character":0,"end_line":3442,"end_character":66},"updated":"2026-09-03 00:02:27.000000000","message":"^ which is supported by all of the tests also stripping out the header prefix","commit_id":"eb63fac6fe545e615dc20e30750405de2d89d6a9"}]}
