)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"756f74c2a6f481ad6f5b1582e3db2adc1c91c49e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ff9702ad_84cb23da","updated":"2026-07-21 09:33:45.000000000","message":"If the mtu stuff will end up in a hidden account, what\u0027s going to go update the main account/container policy_stat mtu_bytes stats? Or is the idea that the data will be stored in a hidden account but the main container will update the users account mpu_bytes.. I guess the latter makes sense now that I think about it.. it is getting late here 😛\n\nAnd so the \"mpu\" in the user size will just count to the object_count as per normal?","commit_id":"5dc2869626acf7f0423bf674e6648996053de543"}],"swift/common/middleware/mpu.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9fcd6feda1e61b43b006afb375a21d4ce7e14e60","unresolved":false,"context_lines":[{"line_number":1346,"context_line":"    def segments_iter(self, byteranges_parts_iter):"},{"line_number":1347,"context_line":"        # translate manifest part dicts to SegmentedIterable segment dicts"},{"line_number":1348,"context_line":"        for part, part_range_start, part_range_end in byteranges_parts_iter:"},{"line_number":1349,"context_line":"            yield(dict(part,"},{"line_number":1350,"context_line":"                       path\u003d\u0027/%s/%s\u0027 % (self.api_version, part[\u0027path\u0027]),"},{"line_number":1351,"context_line":"                       hash\u003dNone,"},{"line_number":1352,"context_line":"                       first_byte\u003dpart_range_start,"}],"source_content_type":"text/x-python","patch_set":3,"id":"57a3dd7a_cc609820","line":1349,"updated":"2026-07-10 12:06:07.000000000","message":"pep8: E275 missing whitespace after keyword","commit_id":"19912bea1ebc379338d48279047add8e8bce5640"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"4aff93acfac9efe607f94a0d68b0b8b510455918","unresolved":false,"context_lines":[{"line_number":1346,"context_line":"    def segments_iter(self, byteranges_parts_iter):"},{"line_number":1347,"context_line":"        # translate manifest part dicts to SegmentedIterable segment dicts"},{"line_number":1348,"context_line":"        for part, part_range_start, part_range_end in byteranges_parts_iter:"},{"line_number":1349,"context_line":"            yield(dict(part,"},{"line_number":1350,"context_line":"                       path\u003d\u0027/%s/%s\u0027 % (self.api_version, part[\u0027path\u0027]),"},{"line_number":1351,"context_line":"                       hash\u003dNone,"},{"line_number":1352,"context_line":"                       first_byte\u003dpart_range_start,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ed9a917b_fc4a19bc","line":1349,"updated":"2026-07-15 11:56:37.000000000","message":"pep8: E275 missing whitespace after keyword","commit_id":"5dc2869626acf7f0423bf674e6648996053de543"}],"swift/container/backend.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"756f74c2a6f481ad6f5b1582e3db2adc1c91c49e","unresolved":true,"context_lines":[{"line_number":100,"context_line":"        SELECT new.storage_policy_index,"},{"line_number":101,"context_line":"               (new.deleted \u003d\u003d 0),"},{"line_number":102,"context_line":"               new.size * (new.deleted \u003d\u003d 0),"},{"line_number":103,"context_line":"               new.mpu_size * (new.mpu_size !\u003d -1) * (new.deleted \u003d\u003d 0)"},{"line_number":104,"context_line":"        WHERE NOT EXISTS("},{"line_number":105,"context_line":"            SELECT changes() as change"},{"line_number":106,"context_line":"            FROM policy_stat"}],"source_content_type":"text/x-python","patch_set":4,"id":"ca0a33fd_2a600b35","line":103,"updated":"2026-07-21 09:33:45.000000000","message":"oh cool, added via a trigger in the policy_stat table","commit_id":"5dc2869626acf7f0423bf674e6648996053de543"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"756f74c2a6f481ad6f5b1582e3db2adc1c91c49e","unresolved":true,"context_lines":[{"line_number":261,"context_line":"        updated.update("},{"line_number":262,"context_line":"            [(k, existing[k])"},{"line_number":263,"context_line":"             for k in (\u0027size\u0027, \u0027etag\u0027, \u0027deleted\u0027, \u0027swift_bytes\u0027, \u0027mpu_size\u0027,"},{"line_number":264,"context_line":"                       \u0027systags\u0027)])"},{"line_number":265,"context_line":"        updated[\u0027data_timestamp\u0027] \u003d existing[\u0027data_timestamp\u0027]"},{"line_number":266,"context_line":"        newer_than_existing[0] \u003d False"},{"line_number":267,"context_line":"    if Timestamp(existing[\u0027ctype_timestamp\u0027]) \u003e\u003d \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"a8e8d8d7_ba5eecf8","line":264,"range":{"start_line":264,"start_character":24,"end_line":264,"end_character":32},"updated":"2026-07-21 09:33:45.000000000","message":"oh cool, so systags are new (added earlier in the MPU feature branch I assume) and for the metadata of objects. This is cool, we finally pulled the trigger on a metadata field, Love it","commit_id":"5dc2869626acf7f0423bf674e6648996053de543"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"756f74c2a6f481ad6f5b1582e3db2adc1c91c49e","unresolved":true,"context_lines":[{"line_number":994,"context_line":"                    trailing_sync \u003d \u0027-1 AS x_container_sync_point1, \u0027 \\"},{"line_number":995,"context_line":"                                    \u0027-1 AS x_container_sync_point2\u0027"},{"line_number":996,"context_line":"                elif \u0027no such column: bytes_in_mpu\u0027 in err_msg:"},{"line_number":997,"context_line":"                    trailing_bytes_in_mpu \u003d \u00270 AS bytes_in_mpu\u0027"},{"line_number":998,"context_line":"                else:"},{"line_number":999,"context_line":"                    raise"},{"line_number":1000,"context_line":"        data \u003d dict(data)"}],"source_content_type":"text/x-python","patch_set":4,"id":"465c406e_c4c6d054","line":997,"range":{"start_line":997,"start_character":45,"end_line":997,"end_character":46},"updated":"2026-07-21 09:33:45.000000000","message":"should this be a -1? As I thought you said above in comment on line 585.","commit_id":"5dc2869626acf7f0423bf674e6648996053de543"}]}
