)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fdc25b8195a0371bb67eb927c538ff801cc16c25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6c914f53_801a9e03","updated":"2025-09-25 14:25:20.000000000","message":"I currently prefer embedding the uid in Timestamp but as a new attribute https://review.opendev.org/c/openstack/swift/+/962275","commit_id":"d26abe318fececb1fd3c3121d78ad96354a0a564"}],"swift/proxy/controllers/obj.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8ecb27f33216e4f483a394c7bcbccc216f8d216a","unresolved":true,"context_lines":[{"line_number":867,"context_line":""},{"line_number":868,"context_line":"        req.ensure_x_timestamp()"},{"line_number":869,"context_line":"        # TODO: send something unique to this *request* (ETag is not sufficient"},{"line_number":870,"context_line":"        #  because it does not cover user object metadata)"},{"line_number":871,"context_line":"        req.headers[\u0027X-Object-Sysmeta-Uid\u0027] \u003d \u0027txnid-perhaps\u0027"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        # check constraints on object name and request headers"}],"source_content_type":"text/x-python","patch_set":1,"id":"45ea1e59_01c5a5f0","line":870,"updated":"2025-09-25 05:45:25.000000000","message":"also has to be unique for the eventlet worker thread","commit_id":"d26abe318fececb1fd3c3121d78ad96354a0a564"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fdc25b8195a0371bb67eb927c538ff801cc16c25","unresolved":true,"context_lines":[{"line_number":867,"context_line":""},{"line_number":868,"context_line":"        req.ensure_x_timestamp()"},{"line_number":869,"context_line":"        # TODO: send something unique to this *request* (ETag is not sufficient"},{"line_number":870,"context_line":"        #  because it does not cover user object metadata)"},{"line_number":871,"context_line":"        req.headers[\u0027X-Object-Sysmeta-Uid\u0027] \u003d \u0027txnid-perhaps\u0027"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        # check constraints on object name and request headers"}],"source_content_type":"text/x-python","patch_set":1,"id":"68cfdee9_3320fae9","line":870,"in_reply_to":"45ea1e59_01c5a5f0","updated":"2025-09-25 14:25:20.000000000","message":"\u003e also has to be unique for the eventlet worker thread\n\nnot necessarily. We don\u0027t need to differentiate requests that are sending *exactly* the same data and metadata to the backend server. Etag (or the EC etag or whatever we call the etag of the ciphertext) covers the data but we don\u0027t hash the user metadata.","commit_id":"d26abe318fececb1fd3c3121d78ad96354a0a564"}]}
