)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"842b11cf8e0b81bfc5b2297b6a599f5d964b300f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7137727c_1226a53b","updated":"2023-08-03 19:31:43.000000000","message":"Found myself getting bit by this again today 😞","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4b5e7a7fdb52b06956a306e6824923200b5fd59f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f3aeeb84_b0432e2d","updated":"2024-01-17 14:33:47.000000000","message":"makes sense","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e27788dd526fc19599ca4d45e64486dcf1051962","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a8e3e2bd_b885be4e","updated":"2024-01-18 05:18:33.000000000","message":"recheck\n\nrequirements rolled back the eventlet bump","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1d455699d15050c8ed3f5b0ec6b8fbdb6ed0788b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ece3f0ee_0f2ddba1","updated":"2022-04-28 19:48:42.000000000","message":"we don\u0027t encrypt content-type!?","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4b5e7a7fdb52b06956a306e6824923200b5fd59f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e499b12e_f4cbb2ed","in_reply_to":"1c49dcc5_ecbfd565","updated":"2024-01-17 14:33:47.000000000","message":"so using the non-encrypted meta for the direct GETs makes sense and doesn\u0027t impact the spirit of the test","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"842b11cf8e0b81bfc5b2297b6a599f5d964b300f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1c49dcc5_ecbfd565","in_reply_to":"ece3f0ee_0f2ddba1","updated":"2023-08-03 19:31:43.000000000","message":"Nope -- ditto other non-`X-Object-Meta-` metadata, like content-encoding.\n\n\u003e The following data are encrypted while at rest in Swift:\n\u003e - Object content i.e. the content of an object PUT request’s body\n\u003e - The entity tag (ETag) of objects that have non-zero content\n\u003e - All custom user object metadata values i.e. metadata sent using X-Object-Meta- prefixed headers with PUT or POST requests\n\u003e\n\u003eAny data or metadata not included in the list above are not encrypted, including:\n\u003e - Account, container and object names\n\u003e - Account and container custom user metadata values\n\u003e - All custom user metadata names\n\u003e - Object Content-Type values\n\u003e - Object size\n\u003e - System metadata\n\n(From https://docs.openstack.org/swift/latest/overview_encryption.html )","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"}],"test/probe/test_reconstructor_revert.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1d455699d15050c8ed3f5b0ec6b8fbdb6ed0788b","unresolved":true,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        # PUT object at t1"},{"line_number":339,"context_line":"        contents \u003d Body(total\u003d3.5 * 2 ** 20)"},{"line_number":340,"context_line":"        headers \u003d {\u0027x-object-meta-foo\u0027: \u0027meta-foo\u0027}"},{"line_number":341,"context_line":"        headers_post \u003d {\u0027content-type\u0027: \u0027meta/bar\u0027}"},{"line_number":342,"context_line":"        client.put_object(self.url, self.token, self.container_name,"},{"line_number":343,"context_line":"                          self.object_name, contents\u003dcontents,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b105671_e66d07b4","line":340,"updated":"2022-04-28 19:48:42.000000000","message":"do we never go looking for this on direct-get?","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"842b11cf8e0b81bfc5b2297b6a599f5d964b300f","unresolved":true,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        # PUT object at t1"},{"line_number":339,"context_line":"        contents \u003d Body(total\u003d3.5 * 2 ** 20)"},{"line_number":340,"context_line":"        headers \u003d {\u0027x-object-meta-foo\u0027: \u0027meta-foo\u0027}"},{"line_number":341,"context_line":"        headers_post \u003d {\u0027content-type\u0027: \u0027meta/bar\u0027}"},{"line_number":342,"context_line":"        client.put_object(self.url, self.token, self.container_name,"},{"line_number":343,"context_line":"                          self.object_name, contents\u003dcontents,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9cc1dd29_e5755113","line":340,"in_reply_to":"4b105671_e66d07b4","updated":"2023-08-03 19:31:43.000000000","message":"We don\u0027t even look for its absence following the POST -- IDK why we have this; probably just cribbing the split-brain from an earlier test.","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1d455699d15050c8ed3f5b0ec6b8fbdb6ed0788b","unresolved":true,"context_lines":[{"line_number":391,"context_line":"        headers, newer_obj_etag \u003d self.proxy_get()"},{"line_number":392,"context_line":"        self.assertEqual(contents2.etag, newer_obj_etag)"},{"line_number":393,"context_line":"        self.assertNotEqual(older_obj_etag, newer_obj_etag)"},{"line_number":394,"context_line":"        self.assertEqual(\u0027meta/bar-new\u0027, headers.get(\u0027content-type\u0027))"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        # fix the 507\u0027ing primary"},{"line_number":397,"context_line":"        self.revive_drive(pdevs[0])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ad199447_dc4d98a4","line":394,"updated":"2022-04-28 19:48:42.000000000","message":"so but this was a proxy-get","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"842b11cf8e0b81bfc5b2297b6a599f5d964b300f","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        headers, newer_obj_etag \u003d self.proxy_get()"},{"line_number":392,"context_line":"        self.assertEqual(contents2.etag, newer_obj_etag)"},{"line_number":393,"context_line":"        self.assertNotEqual(older_obj_etag, newer_obj_etag)"},{"line_number":394,"context_line":"        self.assertEqual(\u0027meta/bar-new\u0027, headers.get(\u0027content-type\u0027))"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        # fix the 507\u0027ing primary"},{"line_number":397,"context_line":"        self.revive_drive(pdevs[0])"}],"source_content_type":"text/x-python","patch_set":1,"id":"2f0bc977_7c89c3a2","line":394,"in_reply_to":"ad199447_dc4d98a4","updated":"2023-08-03 19:31:43.000000000","message":"Correct; this assertion would pass, but we\u0027d blow up later.","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"842b11cf8e0b81bfc5b2297b6a599f5d964b300f","unresolved":true,"context_lines":[{"line_number":415,"context_line":"        headers, frag_etag \u003d self.assert_direct_get_succeeds("},{"line_number":416,"context_line":"            hnodes[0], opart, require_durable\u003dFalse)"},{"line_number":417,"context_line":"        self.assertEqual(older_frag_etag, frag_etag)"},{"line_number":418,"context_line":"        self.assertEqual(\u0027meta/bar\u0027, headers.get(\u0027content-type\u0027))"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"        # fire up reconstructor on handoff node only, again"},{"line_number":421,"context_line":"        self.reconstructor.once(number\u003dhnode_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0dc8c046_8e88c386","line":418,"updated":"2023-08-03 19:31:43.000000000","message":"This is the spot that would blow up previously -- we do a direct get, then go searching for POST headers getting applied to the non-durable. Since `X-Object-Meta-` headers get shifted to `X-Object-Transient-Sysmeta-Crypto-Meta-` headers, we of course wouldn\u0027t find it.","commit_id":"91a6b52a4f3211567de1427e350eeb340cc4bfff"}]}
