)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"09f7e946bc49eafe0db25e269e93bc3dc9fa9b5c","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Jianjian Huo \u003cjhuo@nvidia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-01-09 16:28:23 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"gatekeeper: ensure X-Timestamp is set early for all requests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I6e21eb94ababb01d1676f7e4aa9064a454eb0597"},{"line_number":10,"context_line":"Signed-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"c1c4c222_c2695648","line":7,"updated":"2026-01-12 13:58:23.000000000","message":"this could be a good idea is we are confident that all backend request methods will get the same form of timestamp. But if different methods get different timestamp forms (with or without jitter) then we\u0027ll need to wait until the end of the pipeline because sometimes the method received form the client is different to the method used to the backend e.g. s3api multi-delete is a POST from the client but DELETE(s) to the backend.","commit_id":"1b232da1cb1ac9be2685e6e17dc0b5126fe3e83b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"a3c83ef9cf02844b58deb3c270f031f7e57596ae","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Jianjian Huo \u003cjhuo@nvidia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-01-09 16:28:23 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"gatekeeper: ensure X-Timestamp is set early for all requests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I6e21eb94ababb01d1676f7e4aa9064a454eb0597"},{"line_number":10,"context_line":"Signed-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7e4909d1_f4e79f30","line":7,"in_reply_to":"c1c4c222_c2695648","updated":"2026-01-12 16:47:19.000000000","message":"also, be aware that s3api might overwrite x-timestamp that has been set by gatekeeper, which would need to be fixed:\nsee https://review.opendev.org/c/openstack/swift/+/972334","commit_id":"1b232da1cb1ac9be2685e6e17dc0b5126fe3e83b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6cc37876642b3491aa74fd23c78e8f517f91dd0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e4a53bb2_203a29a9","updated":"2026-01-13 17:14:22.000000000","message":"This may need to be a new piece of middleware:\n\u003e # Note: gatekeeper middleware is not allowed in the internal client pipeline\n\nhttps://github.com/openstack/swift/blob/d555755423c179d23ef02ab2e0b856fd2b04fa71/etc/internal-client.conf-sample#L28-L30\n\nAlso, related: this patch stops s3api setting x-timestamp 973272: s3api: do not set x-timestamp header | https://review.opendev.org/c/openstack/swift/+/973272","commit_id":"1b232da1cb1ac9be2685e6e17dc0b5126fe3e83b"}],"swift/common/middleware/gatekeeper.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"735b338e190ffdeac040b619d51043d18ce686e1","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                              [(\u0027X-Timestamp\u0027, ts)])"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # Ensure X-Timestamp is set early for all requests."},{"line_number":95,"context_line":"        req.ensure_x_timestamp()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        if \u0027X-Allow-Reserved-Names\u0027 in req.headers \\"},{"line_number":98,"context_line":"                and self.allow_reserved_names_header:"}],"source_content_type":"text/x-python","patch_set":1,"id":"175bcf80_06f48396","line":95,"updated":"2026-01-12 02:57:36.000000000","message":"So we maybe pop a version a user has given us on line 87, and then add an X-Timestamp, where shunting is the default.\n\nThat is expected behaviour tho I guess, we don\u0027t want people externally to the swift cluster to define an X-timestamp. so shunt it, and place one as close as to where we can observe it.\n\nI do like this\u0027ll mean the X-Timestamp will in fact be closer to the time we pop it off the accept queue. But this will only add an X-Timestamp on the proxy, or anything using the gatekeeper middleware, so not some IC or storage nodes (which is ok, but interesting to note).","commit_id":"1b232da1cb1ac9be2685e6e17dc0b5126fe3e83b"}]}
