)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"78cf5de1272c0fc67cb3905772d0823c1e47013b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"610ba88e_38a39d6c","updated":"2025-02-20 16:55:08.000000000","message":"Only thing worse than failing tests is passing tests that are hiding a real problem.\n\nI guess I worry while we\u0027re sorting out this new client default behavior we\u0027re going to ignore some inconsistencies between s3api and AWS S3 responses - I think I\u0027d like to either be more explicit about the client requests we expect to generate the kinds of listing that ARE consistent between s3api and AWS S3 or let the s3api version of tests fail if that\u0027s our current expected behavior for a given client request.\n\nIt\u0027s *annoying* that the same sdk-api-call results in different-http-api requests across versions of boto3/s3transfer; but assuming that\u0027s not a problem that\u0027s going to go away I assume we\u0027ll eventually want to have tests that upload objects with upload_file and put_object with and without various kwargs demonstrating our full spectrum of compatibility (or lack thereof when that\u0027s more appropriate)\n\nN.B. I had to adjust my proxy config to get test_service passing against my vsaio:\n\n```\ns3_acl \u003d False\ncheck_bucket_owner \u003d True\n```","commit_id":"25407931bd5cf49df32925c2c26d32240362aee2"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0260b2130a6b08c623a8252776902c267f5e2fff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"214fb9c4_0074cc6d","updated":"2025-02-21 12:24:11.000000000","message":"We could skip tests that fail against swift, which would serve as a reminder that they shouldn\u0027t be skipping. We don\u0027t need to verify that AWS is ok, so we don\u0027t need to run a test unless/until we expect it to pass against the swift s3api. That way we can see if anything new gets broken and have an amber warning that stuff needs to be fixed.","commit_id":"25407931bd5cf49df32925c2c26d32240362aee2"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"aae10998b2bdbb745f5c145242e9539ca7d6c967","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f91af389_28bc391d","updated":"2025-05-13 14:59:25.000000000","message":"the tests fail against S3 on master even with older boto3 because AWS seems to be defaulting to a CRC64NVME checksum when the client sends no checksum algorithm header:\n\n```\n2025-05-13 15:50:03,151 botocore.endpoint [DEBUG] Sending http request: \u003cAWSPreparedRequest stream_output\u003dFalse, method\u003dPUT, url\u003dhttps://s3.amazonaws.com/s3api-test-versioning-3a83f1e8c4824c97ad5d9d48dc1dc64c/s3api-test-versioned-obj-531a3b97c8e343149078adce9d69b209, headers\u003d{\u0027User-Agent\u0027: b\u0027Boto3/1.34.162 md/Botocore#1.34.162 ua/2.0 os/macos#24.3.0 md/arch#arm64 lang/python#3.8.15 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.162\u0027, \u0027Content-MD5\u0027: b\u0027pGCd66LCEinoGMkPypiGag\u003d\u003d\u0027, \u0027Expect\u0027: b\u0027100-continue\u0027, \u0027X-Amz-Date\u0027: b\u002720250513T145003Z\u0027, \u0027X-Amz-Security-Token\u0027: b\u0027IQoJb3JpZ2luX2VjEEcaCXVzLXdlc3QtMiJHMEUCICBRiuCd8OorlWtohEI698R74n0t2UaaFJW9XVopt8i6AiEAstteNrj/DwIHVqQmv9Ow6TiuJWJ6IKvRWYEI8NokFb8qugII8P//////////ARAEGgw4MzQ0MjAyNTY1MDgiDCh7pLTDZEnwgphmiCqOAnhc4H60/s6LWXfEGHPtzYbi3KXTWcexDlDHlodTUnQtfPMENxMgyGjPQlx1EsPR79AfK6oT5IzAz5wMGt5ceNsldzNW1X7lk06pD0Salqvi4P7WXNQgvVe2cyY+ZVbba3KBDbq61GEYsD369P+hIyIaGKPp7a7iMlF2mN/H5kegTvUTgTU5QMyK8ryp2ycWLaFWBYfkeEWspVA0eYUVHNwGgN3x2CpgibYEFMmd2NymEfv15Sif5d7qIWG+yxVH3hxwACpF0oa+XQI0mQvDENlAh7Z+lNFp2d2rwC5jOY+/swKkV+aNGU2Uep1tijeu6bhotl6iH5CC89wko8G8peS0xenvEj/xlgcvOzgJ+TDksI3BBjqdARM1OGIvmG+9rB/jK8f6jqzoR1H/EejFtRZEpsiSd8Jz0iSEIsMnQ89qSajGKEto93amfh24/Hj1ZmH5iLgDhjGB0xOCNh+zDEZzMtb+qslPbhQmPkFgMNpIbRSbdD4dw0IQUANzVAwT94bmDfRIKRILBEMj3ECyozyHsiOkRWKF/aLtfNByQ/qC9TUJEu7QvDOrK0hhX+u2cBBtdFg\u003d\u0027, \u0027X-Amz-Content-SHA256\u0027: b\u0027UNSIGNED-PAYLOAD\u0027, \u0027Authorization\u0027: b\u0027AWS4-HMAC-SHA256 Credential\u003dASIA4ER2SV36CFLQ4JEN/20250513/us-east-1/s3/aws4_request, SignedHeaders\u003dcontent-md5;host;x-amz-content-sha256;x-amz-date;x-amz-security-token, Signature\u003d319fa05909b5e7399413c858c344bf329dc7ac1440c3cbacf782bb2ffbfaf8df\u0027, \u0027amz-sdk-invocation-id\u0027: b\u002739563d7f-1502-4a76-9395-6c87c1b35f50\u0027, \u0027amz-sdk-request\u0027: b\u0027attempt\u003d1\u0027, \u0027Content-Length\u0027: \u002755\u0027}\u003e\n2025-05-13 15:50:03,151 botocore.httpsession [DEBUG] Certificate path: /Users/acoles/.pyenv/versions/3.8.15/envs/swift-3.8.15/lib/python3.8/site-packages/certifi/cacert.pem\n2025-05-13 15:50:03,151 botocore.awsrequest [DEBUG] Waiting for 100 Continue response.\n2025-05-13 15:50:03,248 botocore.awsrequest [DEBUG] 100 Continue response seen, now sending request body.\n2025-05-13 15:50:03,360 urllib3.connectionpool [DEBUG] https://s3.amazonaws.com:443 \"PUT /s3api-test-versioning-3a83f1e8c4824c97ad5d9d48dc1dc64c/s3api-test-versioned-obj-531a3b97c8e343149078adce9d69b209 HTTP/1.1\" 200 0\n2025-05-13 15:50:03,361 botocore.parsers [DEBUG] Response headers: {\u0027x-amz-id-2\u0027: \u0027RYUZENhim6YtmLefee1HVxBbfYgdt0Jn3i7PJEAQqPJ7KLFg6xNC5lEQbEeOiILpMZUXWROGO0Nrw4dtihT3jWNzt6Smmx5dCbH9lf6xVJk\u003d\u0027, \u0027x-amz-request-id\u0027: \u002780W2M8M2WKD7VV44\u0027, \u0027Date\u0027: \u0027Tue, 13 May 2025 14:50:04 GMT\u0027, \u0027x-amz-version-id\u0027: \u0027CzEHW679gkTrgNU54SksLCAX_f5KrBdB\u0027, \u0027x-amz-server-side-encryption\u0027: \u0027AES256\u0027, \u0027ETag\u0027: \u0027\"a4609deba2c21229e818c90fca98866a\"\u0027, \u0027x-amz-checksum-crc64nvme\u0027: \u0027adafn+ocaR0\u003d\u0027, \u0027x-amz-checksum-type\u0027: \u0027FULL_OBJECT\u0027, \u0027Content-Length\u0027: \u00270\u0027, \u0027Server\u0027: \u0027AmazonS3\u0027}\n2025-05-13 15:50:03,362 botocore.parsers [DEBUG] Response body:\nb\u0027\u0027\n```","commit_id":"25407931bd5cf49df32925c2c26d32240362aee2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f01a47a6bd5dca0f0c296e182d6134c8a8c8e917","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cfe9933d_d391764c","in_reply_to":"610ba88e_38a39d6c","updated":"2025-02-20 17:04:16.000000000","message":"\u003e be more explicit about the client requests we expect to generate the kinds of listing that ARE consistent between s3api and AWS S3\n\nThat\u0027s my current plan with the checksum chain: merge this, then when we add checksum support, start explicitly requesting it during upload (via `ExtraArgs\u003d{\u0027ChecksumType\u0027: \u0027CRC32\u0027}`) and get `ChecksumAlgorithm`/`ChecksumType` into the expectations.\n\n\u003e let the s3api version of tests fail if that\u0027s our current expected behavior for a given client request\n\nA known-failures model is probably not a bad idea, but more work to set up. We have that for the ceph tests, but not these. I want passing tests now, so I can ensure they continue passing (against both AWS and s3api) as I work on the checksum chain.\n\n\u003e we\u0027ll eventually want to have tests that upload objects with upload_file and put_object with and without various kwargs demonstrating our full spectrum of compatibility\n\nOr do such variations with our own client, so we know the requests being made won\u0027t arbitrarily change on us in the future.","commit_id":"25407931bd5cf49df32925c2c26d32240362aee2"}],"test/s3api/test_versioning.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"78cf5de1272c0fc67cb3905772d0823c1e47013b","unresolved":true,"context_lines":[{"line_number":135,"context_line":"            obj.pop(\u0027LastModified\u0027)"},{"line_number":136,"context_line":"            # Different versions of boto3 may have turned on checksums"},{"line_number":137,"context_line":"            obj.pop(\u0027ChecksumAlgorithm\u0027, None)"},{"line_number":138,"context_line":"            obj.pop(\u0027ChecksumType\u0027, None)"},{"line_number":139,"context_line":"        self.assertEqual([{"},{"line_number":140,"context_line":"            \u0027ETag\u0027: \u0027\"%s\"\u0027 % obj_etag,"},{"line_number":141,"context_line":"            \u0027Key\u0027: obj_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"99bf570f_730f488a","line":138,"updated":"2025-02-20 16:55:08.000000000","message":"can you think of some flavor of expected failure that we could use to remind us to update these tests when swift supports additional-checksum?\n\nIf not maybe we rephrase `upload_fileobj` as `put_object` so we can pass `ContentMD5` and AWS won\u0027t return the extra additional-checksum keys, i.e. \n\n942382: tests: Fix versioning cross-compat tests | https://review.opendev.org/c/openstack/swift/+/942382","commit_id":"4d3c49d42bf15b2a517a42d886a3597bb47186fd"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"9147d8e9c750bb75ed5d65892135ce5e13ea275a","unresolved":true,"context_lines":[{"line_number":148,"context_line":"        objs \u003d resp.get(\u0027Versions\u0027, [])"},{"line_number":149,"context_line":"        for obj in objs:"},{"line_number":150,"context_line":"            obj.pop(\u0027LastModified\u0027)"},{"line_number":151,"context_line":"            obj.pop(\u0027Owner\u0027)"},{"line_number":152,"context_line":"            obj.pop(\u0027VersionId\u0027)"},{"line_number":153,"context_line":"            # Different versions of boto3 may have turned on checksums"},{"line_number":154,"context_line":"            obj.pop(\u0027ChecksumAlgorithm\u0027, None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f5ba90b_9a0d3921","line":151,"range":{"start_line":151,"start_character":12,"end_line":151,"end_character":28},"updated":"2025-03-03 21:05:11.000000000","message":"FWIW, I don\u0027t really see this as any worse than us popping off `Owner`: there\u0027s metadata that S3 tracks that we don\u0027t. Rather than skip the test or mark it a known-failure, better to keep some coverage by relaxing our assertions.","commit_id":"25407931bd5cf49df32925c2c26d32240362aee2"}]}
