)]}'
{"id":"openstack%2Fswift~742033","triplet_id":"openstack%2Fswift~master~I00c6693c42c1a0220b64d8016d380d5985339658","project":"openstack/swift","branch":"master","topic":"bug/1888037","hashtags":[],"change_id":"I00c6693c42c1a0220b64d8016d380d5985339658","subject":"py3: Work with proper native string paths in crypto meta","status":"MERGED","created":"2020-07-20 21:53:03.000000000","updated":"2020-09-02 15:10:45.000000000","submitted":"2020-08-30 04:11:59.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":23,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"742033-1598760719876-66192b0c","meta_rev_id":"b222a0c33dc20a7fea479cdf4a820b64d45f83d0","_number":742033,"virtual_id_number":742033,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-08-30 04:11:59.000000000","post_submit":true,"permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"date":"2020-08-30 01:08:54.000000000","_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":2,"date":"2020-08-28 16:07:35.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":1,"date":"2020-08-28 16:07:35.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-08-28 16:07:35.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2020-08-30 04:11:59.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"71db8186f138ac1f91d79b62ca50c6c0271918b7","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-20 21:53:03.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"392daeed5d5fbc3368729b621d837a4d9548e701","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-07-20 23:01:57.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/948222740d8a4c139054f9f4708d511f : SUCCESS in 8m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/c289733b73fe4157bbc34d92ec8c576a : SUCCESS in 1h 01m 23s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/af302af32d43467abab0db101d5e1687 : SUCCESS in 52m 33s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/65a0fd7e7d4e4bee8954335da9664708 : SUCCESS in 8m 47s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/cae0909410f949f386a40d9cc919e4ac : SUCCESS in 9m 02s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/13e0444c828f44e1a7a49e870412f34d : SUCCESS in 12m 41s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/bb1aea2d53144807acad483e7c2ce525 : SUCCESS in 15m 19s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f50871b988a041cb9e1de3e1461f4ca3 : SUCCESS in 12m 52s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/ea69beaeec7f46d49dea67f8c39025c2 : SUCCESS in 12m 51s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/4103147145244aada012c5cfa29e9f7b : SUCCESS in 16m 42s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/612fe10398f547b998d2a0056b6e1215 : SUCCESS in 17m 03s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/c994261d8670436c86c0791846cc6c18 : SUCCESS in 17m 05s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/5f5f2349495d42858dab167925a10d3e : FAILURE in 14m 30s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/60580b59127a471e8abf7b71b02b9dcf : FAILURE in 16m 27s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/5d34f048ad0147a5a85ba93bdef05dcc : FAILURE in 16m 27s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2ab9bbcfaa004fa8901e496eeb30da6c : RETRY_LIMIT in 6m 02s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/eca7b9bfc73c4f6391492573e2ad49e7 : RETRY_LIMIT in 3m 38s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3d508198421a43c79675d6604868e9a2 : SUCCESS in 38m 57s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ecf780a033184da89e4d29a7985a827b : SUCCESS in 43m 51s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a8cf9332e17c48059ba1eb6adbdef820 : SUCCESS in 12m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b08a496e0124451e88f951a826b03a53 : SUCCESS in 5m 32s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/0d2a13a03730470ea7693402897e6f46 : RETRY_LIMIT in 8m 59s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f07288e596934973864f0cce65e3cfd1 : SUCCESS in 1h 03m 19s","accounts_in_message":[],"_revision_number":1},{"id":"d1ef3afda90ce03cf28954368283e66849fd5366","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-21 20:47:57.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"522babad764efc6fcfb567c56676baa805ce5cf7","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-07-21 20:58:13.000000000","message":"Patch Set 2:\n\n(6 comments)\n\nso I\u0027ll have to get my vsaio running py2 encryption, upload something with a non-ascii name, then flop over to py3 - sounds fun!","accounts_in_message":[],"_revision_number":2},{"id":"5bd69c2e24f2eee4354e5d46b1f8c928177e2b45","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-07-22 02:09:17.000000000","message":"Patch Set 2: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3bd2dc50345343bfa390935a1f4912da : SUCCESS in 7m 15s\n- grenade https://zuul.opendev.org/t/openstack/build/c55198f7947848548cba2931236f4f50 : SUCCESS in 1h 14m 45s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/036d7232dbe3469995f172863f17c2c5 : SUCCESS in 48m 08s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/208ef8699f084c7583153ece4a02fbc8 : SUCCESS in 8m 46s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/97cf0b4c94df41f180e11d6381a80f0e : SUCCESS in 9m 26s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/60192bbe0ba8474a821dd6113098f54f : SUCCESS in 39m 22s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/31e42841eb1143d1bdaa9214345d08d2 : SUCCESS in 39m 15s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/1c7849c778374b0bad8d97318060b762 : SUCCESS in 12m 21s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/1ca40df086ab41c1ba9e87df668e9182 : SUCCESS in 40m 41s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/9ce7fa530f5a4794bf9ed6ddbd90b4b1 : SUCCESS in 16m 07s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/b8588d9772444006b2d458083b31a583 : SUCCESS in 25m 36s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/eda927c5540942aaa023d5d53573ee0c : SUCCESS in 17m 10s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/8d742c3ee8fb492e94104cfc80426fd8 : SUCCESS in 53m 09s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/db9909235aae4a3588d5140c3994e0a1 : SUCCESS in 16m 58s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/a3625ee9d1bc48d9970c8b6643a3d667 : SUCCESS in 20m 25s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/bd81a00ad4f045ecb398c4c64b0d69b3 : SUCCESS in 20m 08s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/fdea464878664d31a7c2a58e3553dcf9 : SUCCESS in 47m 32s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/36d978bb9e9a427cb8f9ef19f3cd89c2 : SUCCESS in 47m 13s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8cc09c6fee3248749629eac104025814 : SUCCESS in 43m 11s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/02a7e5b586064c1d84cf1ef3680bcd1c : SUCCESS in 15m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fcf52364d6da4495aed943dc85ddd627 : FAILURE in 5m 18s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9ee9bbd9b99145fa8a32ccc42fd3a255 : FAILURE in 10m 33s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/44783ea718a8445f9207af60f6fca666 : SUCCESS in 1h 00m 46s","accounts_in_message":[],"_revision_number":2},{"id":"79df50268dae32ed2d165cba62f8c2d1a5fd6efb","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-22 03:38:05.000000000","message":"Patch Set 3: Published edit on patch set 2.","accounts_in_message":[],"_revision_number":3},{"id":"a216d91d500a4aa32c1330772207fd6a0c7ac650","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-07-22 04:51:16.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3fede3142f084bde826633e52a50e4fa : SUCCESS in 9m 49s\n- grenade https://zuul.opendev.org/t/openstack/build/8847db7a56224833b695aa4d5ea59e6c : SUCCESS in 1h 05m 57s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b0342aceb88f4b2188506bb6f47de6fa : SUCCESS in 45m 40s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5dcbc3b638c14c68ad76cac329d81a6b : SUCCESS in 8m 48s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/1faf8ac5e09149d5945f84e93463a98b : SUCCESS in 9m 36s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/7c6bc74082ec45a18d7d38dd92738ff2 : SUCCESS in 15m 52s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/23f1cf68011c4574a020cfd5b8b96731 : SUCCESS in 12m 25s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/10267a9193bf46f3a3a5dcb8be970e68 : SUCCESS in 13m 01s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/6a187605e7b946c5b89714e09ae4bb41 : SUCCESS in 13m 44s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/6453afc0bc3549e7a4002cd384a1655a : SUCCESS in 16m 30s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/01472aa7e047494abfdfaa8ff970ae37 : SUCCESS in 18m 09s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/fc9a6f5d84544679aea33c744900ae53 : SUCCESS in 19m 16s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/677e2cd013fb4ae4ba36a9b0364e5cef : SUCCESS in 17m 17s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/182932cd18cb43e49b283362017e57d5 : SUCCESS in 16m 48s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/33ad93c7e7294032afad4d1843e9a951 : SUCCESS in 23m 23s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/ac2175bbbd6a48f48e984dccd9c72b6a : SUCCESS in 20m 37s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/8d12cbb4abcd432c910a13c34384a208 : SUCCESS in 46m 14s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/80de4096bce74e638a9459e87dd0c740 : SUCCESS in 41m 56s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7e057e0c17074b889074c20b6274589e : SUCCESS in 43m 16s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ec04b6370e8f4b3a835c6e4ba61d777d : SUCCESS in 13m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/abbd383b09714923b27daa5bb181b529 : SUCCESS in 6m 44s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/4abdfd1ebe2149cbbe42c1840c346fe9 : FAILURE in 9m 51s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8d947eb6592f415c9547d85392daf0b9 : SUCCESS in 54m 27s","accounts_in_message":[],"_revision_number":3},{"id":"28650feb211a58d8705f3c72a6eac31109899e3b","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-07-23 16:09:21.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)\n\nso encryption with non-ascii paths definitely is broken on master if it\u0027s reading data written while py2\n\nJul 23 16:01:18 saio proxy-server: Path stored in meta (\u0027/AUTH_test/test/网络\u0027) does not match path from request (\u0027/AUTH_test/test/ç½\\x91ç»\\x9c\u0027)! Using path from meta. (txn: txb28f9b0010b64f6391ee3-005f19b44e)\nJul 23 16:01:18 saio proxy-server: get_keys(): from callback: \u0027latin-1\u0027 codec can\u0027t encode characters in position 16-17: ordinal not in range(256): #012Traceback (most recent call last):#012  File \"/vagrant/swift/swift/common/middleware/crypto/crypto_utils.py\", line 170, in get_keys#012    keys \u003d fetch_crypto_keys(key_id\u003dkey_id)#012  File \"/vagrant/swift/swift/common/middleware/crypto/keymaster.py\", line 129, in fetch_crypto_keys#012    keys[\u0027object\u0027] \u003d self.keymaster.create_key(#012  File \"/vagrant/swift/swift/common/middleware/crypto/keymaster.py\", line 299, in create_key#012    return hmac.new(key, wsgi_to_bytes(path),#012  File \"/vagrant/swift/swift/common/swob.py\", line 278, in wsgi_to_bytes#012    return wsgi_str.encode(\u0027latin1\u0027)#012UnicodeEncodeError: \u0027latin-1\u0027 codec can\u0027t encode characters in position 16-17: ordinal not in range(256) (txn: txb28f9b0010b64f6391ee3-005f19b44e) (client_ip: 127.0.0.1)\nJul 23 16:01:18 saio proxy-server: Client disconnected on read of \u0027/AUTH_test/test/网络\u0027 (txn: txb28f9b0010b64f6391ee3-005f19b44e) (client_ip: 127.0.0.1)\n\n\nSince encryption with non-ascii paths written with py3 master worked fine in functests, I don\u0027t know how we catch that without a py2-\u003epy3 rolling upgrade test - or just trying to upgrade our clusters.\n\nAt least this one was fixable:\n\n(py38) vagrant@saio:~$ swift download test 网络 -o -\nawesome\n\nI\u0027m not sure I fully understand our upgrade story for encryption; it\u0027s seems relevant even outside of py2/3 and non-ascii paths.","accounts_in_message":[],"_revision_number":3},{"id":"c8e8eeb1b1f74dfaa6592fd3e6b0db9a26125751","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-07-23 16:11:47.000000000","message":"Patch Set 3: -Code-Review\n\nhrmm...\n\nJul 23 16:11:16 saio proxy-server: get_keys(): from callback: Unknown key_id version: 3: #012Traceback (most recent call last):#012  File \"/vagrant/swift/swift/common/middleware/crypto/crypto_utils.py\", line 170, in get_keys#012    keys \u003d fetch_crypto_keys(key_id\u003dkey_id)#012  File \"/vagrant/swift/swift/common/middleware/crypto/keymaster.py\", line 80, in fetch_crypto_keys#012    raise ValueError(\u0027Unknown key_id version: %s\u0027 % version)#012ValueError: Unknown key_id version: 3 (txn: tx5a12317b0bf745b29ff71-005f19b6a4) (client_ip: 127.0.0.1)","accounts_in_message":[],"_revision_number":3},{"id":"e29f650d21e523dde00f88f57344d671caa11c67","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-07-24 19:09:42.000000000","message":"Patch Set 3:\n\n(4 comments)\n\nthis bug is so complex - i\u0027m really torn about if py2 shouldn\u0027t just keep writing things in the \u00272\u0027 format so that upgrades are smooth w/o the latch\n\nbut i might just be biased because I don\u0027t run py3 clusters\n\nBut even there, reading this \"new\" \u00273\u0027 format seems like exactly the same problem as reading the \"old\" \u00272\u0027 format written by py2 servers (which we want to fix and has to be supported forever)\n\nso it really seems like the only case we have to stress about bad data written by old py3 code and accidentally \"called\" the \u00272\u0027 format - and I don\u0027t know yet if there\u0027s an unambiguous way to identify that without a new version.\n\nI\u0027m onboard with making the code robust to rolling upgrade backwards compatible rolling minor version bumps; but I\u0027m not 100% sold on the config latch when the only thing that\u0027s different (on py2) between v2 and v3 is the version number. \n\nI\u0027m torn!","accounts_in_message":[],"_revision_number":3},{"id":"66f059de4a9bf130e3b64be5e7deeb5e0f1244eb","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-24 20:30:35.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"39b9f6070e115a695908068baa480e42521a3158","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-30 00:34:06.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"803ba6a3a620b2e7a30e249c7562597e58123854","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-07-30 01:43:32.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/07e889f1b10c411eb645c8dca578611b : SUCCESS in 8m 39s\n- grenade https://zuul.opendev.org/t/openstack/build/d58871d8a12841739b34d82ebe20e182 : SUCCESS in 1h 02m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/2b2f1c4132c34828b555c99fdce43ad6 : SUCCESS in 30m 47s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3d163a4d48ec42d1844697ce24b8e631 : SUCCESS in 9m 22s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/de49a37d9d884d269b72b43823cb9f18 : SUCCESS in 9m 36s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/9ab81abd7a7d4c93a3d6f3a4e0fd340f : SUCCESS in 12m 15s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/0acb9a82df1a4e7d8e7b99ed89210020 : SUCCESS in 12m 47s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5d8a56c78c564d1989a4b57fa0dca9ea : SUCCESS in 13m 10s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/fbb18efeb827409e9f04e6ec1390ee05 : SUCCESS in 12m 36s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/686b6932d53447e78ab070d56602aefa : SUCCESS in 22m 14s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/f3035d5c4615456b8bd6c27f9d680446 : SUCCESS in 37m 25s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/adf90a33232e47b0bf5b1aa20ea65513 : SUCCESS in 24m 02s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/f5c43b35fa96426fa9914bc07d0d2173 : SUCCESS in 15m 53s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/ca4571a3716d4b56bfcc80887c9c81c2 : SUCCESS in 20m 15s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/560d200eb88b46308f2c6a104414a06c : SUCCESS in 15m 55s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/585aaff91ad34837b810297dc9055bce : SUCCESS in 22m 33s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/21274d61b62c44f897bc03d1d4e4333e : POST_FAILURE in 53m 23s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7e3fec327982445597978ff58e23f88c : SUCCESS in 1h 02m 15s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e4b814e5e43c470f926f0af3b8ff6d4e : SUCCESS in 37m 06s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/576cacd38c23497c83b3334bab3844c5 : SUCCESS in 12m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/11fa9052734642ef96940c3aab3bb07c : SUCCESS in 5m 36s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/ef9eaefc7d8a40e798e601bc1d30dd24 : FAILURE in 7m 49s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/fe98c2dd7aad4e38aeab7f590e47dff6 : SUCCESS in 1h 05m 02s","accounts_in_message":[],"_revision_number":4},{"id":"888127760b520ebfb3f360a9a953ac0d9281f987","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-30 05:06:22.000000000","message":"Patch Set 4:\n\n(1 comment)\n\nrecheck","accounts_in_message":[],"_revision_number":4},{"id":"5fc7e0c8d8c323ef061e3232972f65b13409f11d","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-07-30 19:05:53.000000000","message":"Patch Set 4:\n\nrecheck","accounts_in_message":[],"_revision_number":4},{"id":"fa1238acdd76e8848ff9421b9ab6d67036448018","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-07-30 23:29:25.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a9d688ce77224d2abac16de56dcc198b : SUCCESS in 7m 53s\n- grenade https://zuul.opendev.org/t/openstack/build/0676ac266bf144ce9398cb6d9586fb37 : SUCCESS in 41m 56s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/fca9e0fd8ee74db48b61f305047cdc11 : SUCCESS in 46m 56s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ef17beb7eafa42ddbfdd27ed7a90e1b3 : SUCCESS in 7m 25s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/081ddedc22e1412f93cf5223f1e77181 : SUCCESS in 9m 36s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/eec69ce6d49e46a997efa805e4e8d21c : SUCCESS in 13m 41s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/8e1dfd472a7d4dd391f55a889fb9bf27 : SUCCESS in 13m 23s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/09b6f045ce2343919769b5f0bd7ee134 : SUCCESS in 12m 30s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/1eec8e73bfe649859a9a391d06fc1d5d : SUCCESS in 11m 15s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/f7c13a86004441fdae96de496303b1e8 : SUCCESS in 15m 46s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/84303d20957e45e9a90eac4aa125c4fb : SUCCESS in 16m 51s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/bb12769727804165bbe5471a9c53101d : SUCCESS in 16m 33s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/0c03fb18d7d74a4d8c6a1d94364bd215 : SUCCESS in 17m 31s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/9cdd01684c9b40e3bb3a2cdb52e5ab55 : SUCCESS in 19m 31s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/9c38386df7394f8abeb0bf4bee1ff0da : SUCCESS in 19m 56s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/82f98c908a3c42fbace6bba9bd7812c7 : SUCCESS in 21m 38s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/0a019a9244ef4e488c7e9e89092d34aa : SUCCESS in 46m 33s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3cd9b2dd4a794d469f7acb0894c0bed5 : SUCCESS in 44m 11s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ea41f49537d746f5bfbdfc05cf9789ab : SUCCESS in 39m 27s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b88008cbca624c278923ef79c067e2d4 : SUCCESS in 15m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d9c04f740c434a96964f2a44cead72e6 : SUCCESS in 6m 09s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9c7f46ae32d94f33808f0eb5b978650e : FAILURE in 8m 18s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8c658cb376814fba99da80c4d13b4f5e : SUCCESS in 55m 06s","accounts_in_message":[],"_revision_number":4},{"id":"d799ce7f100bf4833244cd1133282e37a6679830","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-08-28 16:07:35.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1\n\n(6 comments)\n\nso if you upgrade master to py3 and then try to download your encrypted data with non-ascii in the name you\u0027re screwed:\n\nAug 28 15:48:34 saio proxy-server: get_keys(): from callback: \u0027latin-1\u0027 codec can\u0027t encode characters in position 20-21: ordinal not in range(256): #012Traceback (most recent call last):#012  File \"/vagrant/swift/swift/common/middleware/crypto/crypto_utils.py\", line 170, in get_keys#012    keys \u003d fetch_crypto_keys(key_id\u003dkey_id)#012  File \"/vagrant/swift/swift/common/middleware/crypto/keymaster.py\", line 130, in fetch_crypto_keys#012    path, secret_id\u003dsecret_id)#012  File \"/vagrant/swift/swift/common/middleware/crypto/keymaster.py\", line 299, in create_key#012    return hmac.new(key, wsgi_to_bytes(path),#012  File \"/vagrant/swift/swift/common/swob.py\", line 278, in wsgi_to_bytes#012    return wsgi_str.encode(\u0027latin1\u0027)#012UnicodeEncodeError: \u0027latin-1\u0027 codec can\u0027t encode characters in position 20-21: ordinal not in range(256) (txn: tx4ca5a6c725be4022b0a39-005f492752) (client_ip: 127.0.0.1)\n\nuntil you upgrade to a swift with this patch and then everything JUST STARTS WORKING!!!  I don\u0027t see any reality where not having this patch on master is worse than what\u0027s there.\n\nBut running through all the rolling upgrade scenarios in my head, and reading this awesome UpgradeImpact message and looking at the tests I think we REALLY are done here.  I know it took awhile to get everything squared but I think this issue really is closed.\n\nNice work.","accounts_in_message":[],"_revision_number":4},{"id":"5865bb9e55b625b429e396088c9abf6ed76b5a56","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-28 16:08:37.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"ccd6a645e418bf9fb677b983b8575a5702190e1b","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-28 18:35:13.000000000","message":"Patch Set 4: Verified-2\n\nBuild failed (gate pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/974078184d044f9ab286b2d9421e3a85 : SUCCESS in 9m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/5b5600207a814cc195feae108e116a93 : SUCCESS in 1h 01m 43s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/7c2ff548833e475abbdfbd53a489abb4 : FAILURE in 1h 17m 52s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/cdfce414248949d49b3c12ce4d2b951b : SUCCESS in 16m 38s (non-voting)\n- swift-upload-image-py3 https://zuul.opendev.org/t/openstack/build/19b76f5018c0474290f62aa739cb3637 : SUCCESS in 12m 34s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/6bd48fd514ea466eaf1a431d04606fb1 : SUCCESS in 19m 19s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/4450561141a94026b4a6af505a337868 : SUCCESS in 17m 30s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/33e9b4480faa40b396127180ab7353a7 : SUCCESS in 14m 15s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/404620d1664743b9bb984473b21d755f : SUCCESS in 20m 34s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/1fb0b66443d74a81bb72d27c9209d4b8 : SUCCESS in 19m 54s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/43c998f33c854a7786168cfaa2d4aa33 : SUCCESS in 24m 35s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/979277843cb54dbbb183042afab265d6 : SUCCESS in 24m 55s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/a0748f150b96457089d8425fa16a96fb : SUCCESS in 20m 57s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/0ca5afe6722b44ada5286544eb304c07 : SUCCESS in 31m 57s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/118628a3535a4a119feb6b8be84cd9fd : SUCCESS in 57m 23s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/147bb7cd2c97415188deceadba8ff6e2 : SUCCESS in 51m 49s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3295eadc5d7649959ebdf5e07108858f : SUCCESS in 51m 23s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/07db80b5c4904f0d963d5e6420753a39 : SUCCESS in 13m 40s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3bd1d62cc5864474b5299ccde06deb24 : SUCCESS in 7m 14s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6291f95c3368449bab726274730f1f25 : SUCCESS in 1h 01m 22s","accounts_in_message":[],"_revision_number":4},{"id":"401a6b4397e9e0143e44c64285e9965821f05b2e","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-08-28 18:48:08.000000000","message":"Patch Set 4:\n\nrecheck","accounts_in_message":[],"_revision_number":4},{"id":"c0ba6306cc4a23175281ff79c232c0b4c60b090f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-28 21:17:15.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/29f7c5f7f1ee4a52a62f43fead42279e : SUCCESS in 10m 01s\n- grenade https://zuul.opendev.org/t/openstack/build/cc096b7cb0c547f19552a84c6a99771a : SUCCESS in 1h 03m 19s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e6abd195b017437e819eaf73e80753aa : SUCCESS in 47m 22s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b6e14b09f4e5435189bca1c51a9aa885 : SUCCESS in 8m 42s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/2491845d811f4d5e8810a213e6e23d39 : SUCCESS in 9m 53s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/01cc477bbcfa49f0809e0610ea5f81ec : SUCCESS in 12m 28s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/db6fce3d73104a999d883da16b90cc24 : SUCCESS in 11m 13s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0ce48fd4e97a4bd9956129e90af9b569 : SUCCESS in 11m 52s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/1c1c73fdc72f494eb443d206cf7530e3 : SUCCESS in 12m 31s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/67857e1cf44f4c8e876c0527f4bb67f7 : SUCCESS in 19m 26s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/6cb686ff9f1c4eda87cb0396b984d722 : SUCCESS in 20m 18s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/af2a22d55fdd45289e6a18463253321e : SUCCESS in 25m 04s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/1f73d8f262554b4892ef393944e852f5 : SUCCESS in 16m 55s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/b2646957b2ff474daccf1ba43dca2f61 : SUCCESS in 18m 36s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/431a91522b774535ab5da1984b825b6a : SUCCESS in 22m 14s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/0059ed53d7aa4fdf8bcd3dd81aaf7f7b : SUCCESS in 39m 40s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/3f889bf2ae1c4cfdb297c52290726e28 : SUCCESS in 46m 10s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/71e426b1f6ee479197c8317428165113 : SUCCESS in 49m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/68f8f1bcb86246c3b9c6e17a60fbe7bd : SUCCESS in 42m 23s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/aed447c006bb4ea894158b3698266f52 : SUCCESS in 24m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/717d5eb85c244c2da087cd7416e33ac9 : SUCCESS in 7m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a63a5c5bb110470e9c8f85703065d414 : FAILURE in 10m 25s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e90bb6728e714107a6b4120a8520c771 : SUCCESS in 1h 12m 12s","accounts_in_message":[],"_revision_number":4},{"id":"a2b08835227072bffcadbe544daa4a54332a06c2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-28 21:17:44.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"bcfcfe583334e8ed444a0caca1d2e9e14cf4574c","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-08-28 22:32:05.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"d067bc2a206cbbbd2ad3fcc65b47561867b1a4c3","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-28 22:44:02.000000000","message":"Patch Set 4: Verified-2\n\nBuild failed (gate pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9fdd5426b4a94173a81a4566a16a8cec : RETRY_LIMIT in 0s\n- grenade https://zuul.opendev.org/t/openstack/build/587e665ba4c9491fa291588a5f847d1a : SUCCESS in 1h 06m 50s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/673fcec4fec943a5941f51ede6fa4675 : SUCCESS in 33m 31s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/7752efc7f11e4655a7257026ca53fcf8 : SUCCESS in 10m 06s (non-voting)\n- swift-upload-image-py3 https://zuul.opendev.org/t/openstack/build/11b64badaaca4ed8863759f257ff4c7d : SUCCESS in 11m 54s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/0a2df5a9bea94eefbd73e97be12cbcb0 : SUCCESS in 17m 22s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/9d41920dda134c258c8ad4ea07d37cc4 : SUCCESS in 16m 28s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/fc5a213b448c4fc78d405e696ae5f740 : SUCCESS in 16m 18s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/1efcd440626c49f1a403675ba26ec989 : SUCCESS in 15m 07s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/faeed38eb9404d1cbae25b45c4c06572 : SUCCESS in 19m 53s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/04952620f338445e8ffa2fa59bd62933 : SUCCESS in 24m 38s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/8214c30b7d2a4ec29229fa454d0953d4 : SUCCESS in 22m 23s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/9a90ddbc8ec64e3f8b6c2b6ea5b6de32 : SUCCESS in 22m 07s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/c7052a55f13d4008861279931cce351f : SUCCESS in 17m 42s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/41aef951f6cf4a069def9d693257732d : RETRY_LIMIT in 0s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/bff0639ace96459bbeca81e6d1585d0c : SUCCESS in 46m 08s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/a906d2d0caca431c8e33aaf3da4f656f : SUCCESS in 44m 05s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f10376350a674902ab7ee1352b3efb25 : SUCCESS in 13m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/04fcc8ab57dc405d89fa86daf3db3cc4 : SUCCESS in 6m 19s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/da274be88dc74e7da8dcb7838e372557 : SUCCESS in 54m 35s","accounts_in_message":[],"_revision_number":4},{"id":"fbeb7c9d9ff528a1456727e51007b4cf62e182fe","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-08-30 01:08:54.000000000","message":"Patch Set 4:\n\nrecheck","accounts_in_message":[],"_revision_number":4},{"id":"10cbce0a0e792c2353b6a513d6449d385490a422","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-30 02:13:47.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/95c244e29ce54013a8abf7a86aba5c25 : SUCCESS in 7m 23s\n- grenade https://zuul.opendev.org/t/openstack/build/c8bbb08b902645e595dbcc2266a0b95c : SUCCESS in 1h 04m 05s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/49afc337443741b893a910783b93e704 : SUCCESS in 40m 36s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/16aedba8b48c493ba2b2475d7f675f8d : SUCCESS in 8m 26s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/8d4d42cb1bb84162ba7f57e421cdd5c8 : SUCCESS in 8m 48s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/8b61775655b94cbaa3be53fb76a6db02 : SUCCESS in 11m 30s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/ed98e6fa73cb4e9296f84782ce32e250 : SUCCESS in 12m 48s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/346be447e2b94f9781472cda4a129ffd : SUCCESS in 11m 59s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/83896941ad0d44cd92e6b270fa79bbd2 : SUCCESS in 12m 15s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/cb3927c33735473f8f4db88a66263fc3 : SUCCESS in 16m 08s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/29ca7c695d0244ce9733f25dce89ba4f : SUCCESS in 16m 39s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/430c31e43dda46c0afc5740fcb3d6746 : SUCCESS in 16m 52s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/6755d426f8cd4b6fbc0a888024553ab3 : SUCCESS in 15m 45s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/07e5a1d3fb6340339c854085e6d88109 : SUCCESS in 16m 01s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/af3644dc998b49b1a0782df646a50707 : SUCCESS in 17m 29s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/95cf123169974492b8411f432f7c60c8 : SUCCESS in 22m 30s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/562fafa87c39466bbf3dda74f8b47431 : SUCCESS in 39m 05s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/bf91cacac350461095308fcbbd0db916 : SUCCESS in 37m 06s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/dafc96a6c41b455a9c45415c5ab4a36b : SUCCESS in 40m 24s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/420aa1fbe32646c7b1555de8f6bb5717 : SUCCESS in 12m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3962c4d8d60f415988023869df683f9a : SUCCESS in 5m 33s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9fbc71e6c091488ba51a18d343ccfe02 : FAILURE in 7m 06s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4e3c2fbff584445b9a8b409395795be8 : SUCCESS in 55m 40s","accounts_in_message":[],"_revision_number":4},{"id":"52e2d4ccbebe8a1b1c1cb37a5c09883a0e40e1a2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-30 02:14:00.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"2eda8ac158b9c8f5a389a6db8ccf2aeaa132d8ac","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-30 04:11:59.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/51bee4c5b3f0414fa5a912955294afda : SUCCESS in 8m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/7ed91998211d4177989cee46f0d577d8 : SUCCESS in 58m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6b3c02b05da8416d8e2349acca41a967 : SUCCESS in 38m 33s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/269eaa11b4ed4b25a04b5a960c507018 : SUCCESS in 9m 38s (non-voting)\n- swift-upload-image-py3 https://zuul.opendev.org/t/openstack/build/8d2240f5512c4fa1899004760980303c : SUCCESS in 10m 08s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/f416168f541d415fb794a97b01208492 : SUCCESS in 23m 26s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/a6a51428447e4eedab2a6face86305dc : SUCCESS in 10m 06s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9be7919dee9c479e925a852c652178df : SUCCESS in 11m 49s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/82ffe31215b649fdb5fbeae4b5a38592 : SUCCESS in 23m 14s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/8e44006b213e48a5aa426025cf19c705 : SUCCESS in 26m 32s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/16fc21b8eaaa437a8aec0588b8cc0453 : SUCCESS in 26m 42s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/64f37c320583424c936e7297fea17df9 : SUCCESS in 21m 14s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/21ba560f1dd94ecdb22ef1e68cae8bcb : SUCCESS in 15m 54s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/fb1fbdf0bb284b608d4612639358d938 : SUCCESS in 16m 31s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/ec1dd8c638b24e499989039a562841f7 : SUCCESS in 39m 39s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d53d20a830144be78f0d010a36167f22 : SUCCESS in 41m 34s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1aa8e530714e47c78bfc4edf5df661fe : SUCCESS in 45m 32s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c6eb354c4b97439089ca03a8f2972b7d : SUCCESS in 11m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/748a8a2519c24d3093e8caabb2471890 : SUCCESS in 7m 33s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/59361b3564b647aa900dc98576b85081 : SUCCESS in 46m 31s","accounts_in_message":[],"_revision_number":4},{"id":"b11aa97c5045dd50b942539b5c4f02346cc2489e","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-30 04:11:59.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":4},{"id":"bf4e1322658e7b10bfd18026389e9c47e517acb9","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-08-30 04:14:14.000000000","message":"Patch Set 4:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c546201e09e24812af680e458aa18b05 : SUCCESS in 45s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/b63bb5d342e14533b642c855604802cb : SUCCESS in 42s (non-voting)\n- swift-promote-image-py3 https://zuul.opendev.org/t/openstack/build/ac3539843f2445a1940ccbba1fc49151 : SUCCESS in 48s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"8aa38806d3265e52cb4779c805f4a7591e041389","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-08-30 17:24:24.000000000","message":"Patch Set 4: Cherry Picked\n\nThis patchset was cherry picked to branch stable/ussuri as commit 8ed74c264605e12717c93e9b07f4ff50924e619f","accounts_in_message":[],"_revision_number":4},{"id":"ebb9a78cee8385c7cf7aae6676a2517571518e7c","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-08-30 17:25:45.000000000","message":"Patch Set 4: Cherry Picked\n\nThis patchset was cherry picked to branch stable/train as commit eef87ee21229c8f8cc794b29e0f9abc159fc98e7","accounts_in_message":[],"_revision_number":4},{"id":"b59d40f344e013036c49164d93083092fdadcbb2","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-09-02 15:10:45.000000000","message":"Patch Set 4: Cherry Picked\n\nThis patchset was cherry picked to branch stable/stein as commit db485392fc238b32e29c8aca12d2e70dd9561004","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"7d429318ddb854a23cdecfe35721b1ecbe8bcccc","revisions":{"6bdaf7796e18575e88dc842d265dd09ed7a3bb29":{"kind":"REWORK","_number":1,"created":"2020-07-20 21:53:03.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/33/742033/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/33/742033/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/33/742033/1"}}},"commit":{"parents":[{"commit":"d287854c8a2765b64d37dcb6431204af59b503c6","subject":"Merge \"Get rid of memcache attr on proxy-server app\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d287854c8a2765b64d37dcb6431204af59b503c6"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-20 21:18:33.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-20 21:52:41.000000000","tz":-420},"subject":"wip: py3: Work with proper native string paths in crypto meta","message":"wip: py3: Work with proper native string paths in crypto meta\n\nPreviously, we would work with these paths as WSGI strings -- this would\nwork fine when all data were read and written on the same major version\nof Python, but fail pretty badly during and after upgrading Python.\n\nIn particular, if a py3 proxy-server tried to read existing data that\nwas written down by a py2 proxy-server, it would hit an error and\nrespond 500. Worse, if an un-upgraded py2 proxy tried to read data that\nwas freshly-written by a py3 proxy, it would serve corrupt data back to\nthe client (including a corrupt/invalid ETag and Content-Type).\n\nNow, ensure that both py2 and py3 write down paths as native strings.\nMake an effort to still work with WSGI-string metadata, though it can be\nambiguous as to whether a string is a WSGI string or not. The heuristic\nused is if\n\n * the path from metadata does not match the (native-string) request\n   path and\n * the path from metadata (when interpreted as a WSGI string) can be\n   \"un-wsgi-fied\" without any encode/decode errors and\n * the native-string path from metadata *does* match the native-string\n   request path\n\nthen trust the path from the request. By contrast, we usually prefer the\npath from metadata in case there was a pipeline misconfiguration (see\nrelated bug).\n\nChange-Id: I00c6693c42c1a0220b64d8016d380d5985339658\nCloses-Bug: #1888037\nRelated-Bug: #1813725\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6bdaf7796e18575e88dc842d265dd09ed7a3bb29"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6bdaf7796e18575e88dc842d265dd09ed7a3bb29"}]},"branch":"refs/heads/master"},"454788b939370970ea66241ec2cb7e41142694fe":{"kind":"REWORK","_number":2,"created":"2020-07-21 20:47:57.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/33/742033/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/33/742033/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/33/742033/2"}}},"commit":{"parents":[{"commit":"1c91547643f9c85f152d1d8c15431fec8334e214","subject":"Use latest pip in gate jobs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1c91547643f9c85f152d1d8c15431fec8334e214"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-20 21:18:33.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-21 20:47:46.000000000","tz":-420},"subject":"py3: Work with proper native string paths in crypto meta","message":"py3: Work with proper native string paths in crypto meta\n\nPreviously, we would work with these paths as WSGI strings -- this would\nwork fine when all data were read and written on the same major version\nof Python, but fail pretty badly during and after upgrading Python.\n\nIn particular, if a py3 proxy-server tried to read existing data that\nwas written down by a py2 proxy-server, it would hit an error and\nrespond 500. Worse, if an un-upgraded py2 proxy tried to read data that\nwas freshly-written by a py3 proxy, it would serve corrupt data back to\nthe client (including a corrupt/invalid ETag and Content-Type).\n\nNow, ensure that both py2 and py3 write down paths as native strings.\nMake an effort to still work with WSGI-string metadata, though it can be\nambiguous as to whether a string is a WSGI string or not. The heuristic\nused is if\n\n * the path from metadata does not match the (native-string) request\n   path and\n * the path from metadata (when interpreted as a WSGI string) can be\n   \"un-wsgi-fied\" without any encode/decode errors and\n * the native-string path from metadata *does* match the native-string\n   request path\n\nthen trust the path from the request. By contrast, we usually prefer the\npath from metadata in case there was a pipeline misconfiguration (see\nrelated bug).\n\nChange-Id: I00c6693c42c1a0220b64d8016d380d5985339658\nCloses-Bug: #1888037\nRelated-Bug: #1813725\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/454788b939370970ea66241ec2cb7e41142694fe"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/454788b939370970ea66241ec2cb7e41142694fe"}]},"branch":"refs/heads/master"},"802ec5ee83f7df06f688914714a943a39c3d67ed":{"kind":"REWORK","_number":3,"created":"2020-07-22 03:38:05.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/33/742033/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/33/742033/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/33/742033/3"}}},"commit":{"parents":[{"commit":"1c91547643f9c85f152d1d8c15431fec8334e214","subject":"Use latest pip in gate jobs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1c91547643f9c85f152d1d8c15431fec8334e214"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-20 21:18:33.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tburke@nvidia.com","date":"2020-07-22 03:38:00.000000000","tz":0},"subject":"py3: Work with proper native string paths in crypto meta","message":"py3: Work with proper native string paths in crypto meta\n\nPreviously, we would work with these paths as WSGI strings -- this would\nwork fine when all data were read and written on the same major version\nof Python, but fail pretty badly during and after upgrading Python.\n\nIn particular, if a py3 proxy-server tried to read existing data that\nwas written down by a py2 proxy-server, it would hit an error and\nrespond 500. Worse, if an un-upgraded py2 proxy tried to read data that\nwas freshly-written by a py3 proxy, it would serve corrupt data back to\nthe client (including a corrupt/invalid ETag and Content-Type).\n\nNow, ensure that both py2 and py3 write down paths as native strings.\nMake an effort to still work with WSGI-string metadata, though it can be\nambiguous as to whether a string is a WSGI string or not. The heuristic\nused is if\n\n * the path from metadata does not match the (native-string) request\n   path and\n * the path from metadata (when interpreted as a WSGI string) can be\n   \"un-wsgi-fied\" without any encode/decode errors and\n * the native-string path from metadata *does* match the native-string\n   request path\n\nthen trust the path from the request. By contrast, we usually prefer the\npath from metadata in case there was a pipeline misconfiguration (see\nrelated bug).\n\nChange-Id: I00c6693c42c1a0220b64d8016d380d5985339658\nCloses-Bug: #1888037\nRelated-Bug: #1813725\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/802ec5ee83f7df06f688914714a943a39c3d67ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/802ec5ee83f7df06f688914714a943a39c3d67ed"}]},"branch":"refs/heads/master"},"7d429318ddb854a23cdecfe35721b1ecbe8bcccc":{"kind":"REWORK","_number":4,"created":"2020-07-30 00:34:06.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/33/742033/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/33/742033/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/33/742033/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/33/742033/4"}}},"commit":{"parents":[{"commit":"d6399b32e7b52d8564ba22d020b23233e24b4add","subject":"Merge \"s3api: Allow lower-cased region name for AWS .NET SDK compatibility\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d6399b32e7b52d8564ba22d020b23233e24b4add"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-20 21:18:33.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2020-07-30 00:33:54.000000000","tz":-420},"subject":"py3: Work with proper native string paths in crypto meta","message":"py3: Work with proper native string paths in crypto meta\n\nPreviously, we would work with these paths as WSGI strings -- this would\nwork fine when all data were read and written on the same major version\nof Python, but fail pretty badly during and after upgrading Python.\n\nIn particular, if a py3 proxy-server tried to read existing data that\nwas written down by a py2 proxy-server, it would hit an error and\nrespond 500. Worse, if an un-upgraded py2 proxy tried to read data that\nwas freshly-written by a py3 proxy, it would serve corrupt data back to\nthe client (including a corrupt/invalid ETag and Content-Type).\n\nNow, ensure that both py2 and py3 write down paths as native strings.\nMake an effort to still work with WSGI-string metadata, though it can be\nambiguous as to whether a string is a WSGI string or not. The heuristic\nused is if\n\n * the path from metadata does not match the (native-string) request\n   path and\n * the path from metadata (when interpreted as a WSGI string) can be\n   \"un-wsgi-fied\" without any encode/decode errors and\n * the native-string path from metadata *does* match the native-string\n   request path\n\nthen trust the path from the request. By contrast, we usually prefer the\npath from metadata in case there was a pipeline misconfiguration (see\nrelated bug).\n\nAdd the ability to read and write a new, unambiguous version of metadata\nthat always has the path as a native string. To support rolling\nupgrades, a new config option is added: meta_version_to_write. This\ndefaults to 2 to support rolling upgrades without configuration changes,\nbut the default may change to 3 in a future release.\n\nUpgradeImpact\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWhen upgrading from Swift 2.20.0 or Swift 2.19.1 or earlier, set\n\n    meta_version_to_write \u003d 1\n\nin your keymaster\u0027s configuration. Regardless of prior Swift version, set\n\n    meta_version_to_write \u003d 3\n\nafter upgrading all proxy servers.\n\nWhen switching from Python 2 to Python 3, first upgrade Swift while on\nPython 2, then upgrade to Python 3.\n\nChange-Id: I00c6693c42c1a0220b64d8016d380d5985339658\nCloses-Bug: #1888037\nRelated-Bug: #1813725\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7d429318ddb854a23cdecfe35721b1ecbe8bcccc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7d429318ddb854a23cdecfe35721b1ecbe8bcccc"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
