)]}'
{"id":"openstack%2Fswift~700789","triplet_id":"openstack%2Fswift~master~I09ba631dd2df36322ac234beef83c066e0fe2b99","project":"openstack/swift","branch":"master","topic":"bug/1856894","hashtags":[],"change_id":"I09ba631dd2df36322ac234beef83c066e0fe2b99","subject":"sharding: Better-handle newlines in container names","status":"ABANDONED","created":"2019-12-30 20:25:01.000000000","updated":"2020-01-05 16:05:33.000000000","total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"7e7e452cd3464d528f9dc7016f44df587f711f89","_number":700789,"virtual_id_number":700789,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2019-12-30 21:37:46.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_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":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":-1,"date":"2019-12-30 20:32:01.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"date":"2019-12-30 20:25:01.000000000","permitted_voting_range":{"min":-1,"max":1},"_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":"2019-12-30 20:25:01.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2019-12-30 21:37:46.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":"9b48c8f92c93c7a330c9ce34df1834412cd355b3","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2019-12-30 20:25:01.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"37f3fb01f1fb279961e60c39c8dc07ff5bf245ee","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2019-12-30 20:32:01.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nThis is an alternative to https://review.opendev.org/#/c/699892/\n\nBasically I\u0027m taking Tim\u0027s work tracking down all the places we need to quote/unquote headers but with a slightly different approach for backwards compatibility and rolling upgrades for the header names.  I have a hunch this might be slightly easier to reason about for new clusters and those that haven\u0027t yet been effected by the \"Invalid header value\" bug.\n\nIt seems to work, but I\u0027m not 100% sure all the cases we care about in the upgrade case really get hit by the tests.  If this looks reasonable I should add some targeted unittests.","accounts_in_message":[],"_revision_number":1},{"id":"47274ab42344fb9065f33fe841c3b9be809080d7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-30 21:37:46.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b9b61cd6c69844f285fa234991de868d : SUCCESS in 7m 21s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/d6fc8eac5b3241a5a2dc30b23683c53e : SUCCESS in 58m 09s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/05bbcc62911b4b33b7a319feecb15e77 : SUCCESS in 51m 11s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/2f640004e731467481b323baf25251bf : FAILURE in 10m 58s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/817ed26942814b28a2e0b49f5a467f8d : SUCCESS in 9m 07s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/05bd7211506543b0b92a1c0aac27aa7a : SUCCESS in 11m 53s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/4b6dde4d8c844a8fab0d9b895830f393 : SUCCESS in 11m 23s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ef6ca5ec34cc4a12b3fa171516037f42 : SUCCESS in 12m 01s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/dbfd172b39a2497abb43e0ee5d9d96c0 : SUCCESS in 8m 45s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/39787f11524546aa99fb0323321f4ca1 : SUCCESS in 9m 24s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/291dce6ee777478b92ce0118c3251b3e : SUCCESS in 9m 02s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/8f162f625afe4699af1b052b8d717a72 : SUCCESS in 11m 52s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/d936df4473314ef0919c9b0fb8097c0f : SUCCESS in 12m 29s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/78fd91d8577745edb7d9ae05b11c541a : SUCCESS in 10m 57s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/b78fda03cedf4cb895f84532f18f4dbb : SUCCESS in 9m 28s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/d039f54c14af4e33bdcee585f6806f8b : SUCCESS in 11m 23s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/b8822532df39444091b4499a77b54fff : SUCCESS in 10m 26s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/dfc73dfa42b14fe3901d4d46322178a1 : SUCCESS in 12m 21s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/75df46aa125a43618f9c22337272164d : SUCCESS in 19m 38s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/e200a2474e314e13ab6c34b52b273794 : FAILURE in 38m 00s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/276b796c129c49199c3349338401a8c7 : SUCCESS in 32m 28s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/c5d5efa7c5224d4abdd3a94de784a5ae : SUCCESS in 31m 15s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b535ed4ecbde4683be367e527d0af087 : SUCCESS in 31m 43s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b4fec07f0f4344268e686f1624d330ab : SUCCESS in 11m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9fcda90867384579ad7e7555b55ea881 : SUCCESS in 6m 17s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/486fb7c76c394d87a55a441cbae56a77 : SUCCESS in 17m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/971f26c6030944e5b0b754cc557bbcbd : SUCCESS in 1h 11m 28s","accounts_in_message":[],"_revision_number":1},{"id":"286ce457f19466377663020e720e4c804aeca69d","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-01-02 18:38:38.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nthere\u0027s at least one upgrade case where old code could read metadata quoted by new code and try and act on it like it\u0027s unquoted - if that breaks really really badly this might not be the way to go\n\nI need to find some way to test it","accounts_in_message":[],"_revision_number":1},{"id":"6377570adb9f641e5084fec783c20b01b4ad7b48","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-01-03 01:08:23.000000000","message":"Patch Set 1:\n\nso writing down \"quoted-paths: true\" in sysmeta is pretty awful - for one an un-upgraded node can write down an *unquoted* root *after* an upgraded node wrote down \"quoted_paths: true\"\n\nafter replication takes the latest value for each key I\u0027ve got an unquoted path that says \"quoted_paths: true\"\n\nI also managed to get some lost objects into a shard named with the quoted value when the proxy sent down the target-shard quoted and the object forwarded it (i guess since the container was in an autocreate account it made a new db - which strangely itself doesn\u0027t think it\u0027s a shard despite being in the .shards_X namespace)","accounts_in_message":[],"_revision_number":1},{"id":"eec18ac69fd84303abe7b7506854957880f9cfee","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2020-01-05 16:05:33.000000000","message":"Abandoned\n\nhttps://review.opendev.org/#/c/699892/ is the way to go!","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"3c6c63c404967911ba827a246914851f01cda7d4","revisions":{"3c6c63c404967911ba827a246914851f01cda7d4":{"kind":"REWORK","_number":1,"created":"2019-12-30 20:25:01.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/89/700789/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/89/700789/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/89/700789/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/89/700789/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/89/700789/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/89/700789/1"}}},"commit":{"parents":[{"commit":"7862ec7b8a7c56fffc32e0bfac3665f8b4f198dc","subject":"Merge \"sharder: quote() more Swift paths when logging\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7862ec7b8a7c56fffc32e0bfac3665f8b4f198dc"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2019-12-18 23:14:00.000000000","tz":-480},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2019-12-30 20:24:10.000000000","tz":-360},"subject":"sharding: Better-handle newlines in container names","message":"sharding: Better-handle newlines in container names\n\nPreviously, if you were on Python 2.7.10+ [0], such a newline would cause the\nsharder to fail, complaining about invalid header values when trying to create\nthe shard containers. On older versions of Python, it would most likely cause a\nparsing error in the container-server that was trying to handle the PUT.\n\nNow, quote all places that we pass around container paths. This includes:\n\n  * The X-Container-Sysmeta-Shard-Root sent when creating the (empty)\n    remote shards\n  * The X-Container-Sysmeta-Shard-Root included when initializing the\n    local handoff for cleaving\n  * The X-Backend-Container-Path the proxy sends to the object-server\n    for container updates\n  * The Location header the container-server sends to the\n    object-server and object-updater\n\nNote that a new header X-(Container-Sysmeta|Backend)-Quoted-Paths is\nrequired so that receivers would know whether the value should be\nunquoted or not.\n\nDrive-by: fix a \"conainer_name\" typo that prevented us from testing that\nwe can shard a container with unicode in its name. Also, add more UTF8\nprobe tests.\n\n[0] See https://bugs.python.org/issue22928\n\nChange-Id: I09ba631dd2df36322ac234beef83c066e0fe2b99\nCloses-Bug: 1856894\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3c6c63c404967911ba827a246914851f01cda7d4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3c6c63c404967911ba827a246914851f01cda7d4"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
