)]}'
{"id":"openstack%2Fswift~534959","triplet_id":"openstack%2Fswift~master~I0a94482ed16cb30ce79074e053e6177fe97bcaa9","project":"openstack/swift","branch":"master","topic":"534399","hashtags":[],"change_id":"I0a94482ed16cb30ce79074e053e6177fe97bcaa9","subject":"object-server can 409 in response to x-if-delete-at","status":"MERGED","created":"2018-01-17 22:16:14.000000000","updated":"2018-01-24 08:27:35.000000000","submitted":"2018-01-24 08:27:35.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":7,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"534959-1516782455876-150c84cd","meta_rev_id":"97a67cb314262792d1961ef2768bbf2235d3bcd5","_number":534959,"virtual_id_number":534959,"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"},{"value":2,"date":"2018-01-24 08:27:35.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":"2018-01-19 01:23:56.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":2,"date":"2018-01-23 21:06:20.000000000","_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"all":[{"value":0,"_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":1,"date":"2018-01-23 21:06:20.000000000","_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2018-01-19 01:23:56.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":"2018-01-23 21:06:20.000000000","updated_by":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"reviewer":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"state":"REVIEWER"},{"updated":"2018-01-24 08:27:35.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":"526a0a07baa20aaca29d01d9e4d3b06996c909a1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2018-01-17 22:16:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3d216c3f711e2959a3464f50b6cbd3701e12c5c7","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-01-18 01:13:01.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- build-openstack-sphinx-docs http://logs.openstack.org/59/534959/1/check/build-openstack-sphinx-docs/09c7f0a/html/ : SUCCESS in 5m 17s\n- openstack-tox-pep8 http://logs.openstack.org/59/534959/1/check/openstack-tox-pep8/f5b0ecd/ : SUCCESS in 4m 01s\n- legacy-swift-dsvm-functional http://logs.openstack.org/59/534959/1/check/legacy-swift-dsvm-functional/62ad5db/ : SUCCESS in 30m 31s\n- legacy-swift-dsvm-functional-identity-v3-only http://logs.openstack.org/59/534959/1/check/legacy-swift-dsvm-functional-identity-v3-only/b7038ea/ : SUCCESS in 24m 14s (non-voting)\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/59/534959/1/check/legacy-tempest-dsvm-neutron-full/3cbd4ba/ : SUCCESS in 2h 15m 17s\n- neutron-grenade http://logs.openstack.org/59/534959/1/check/neutron-grenade/ead4f5b/ : SUCCESS in 49m 58s\n- swift-tox-py27 http://logs.openstack.org/59/534959/1/check/swift-tox-py27/b11859a/ : SUCCESS in 7m 02s\n- swift-tox-py35 http://logs.openstack.org/59/534959/1/check/swift-tox-py35/f98dda8/ : SUCCESS in 3m 02s\n- swift-tox-func http://logs.openstack.org/59/534959/1/check/swift-tox-func/e15a0ed/ : SUCCESS in 7m 42s\n- swift-tox-func-post-as-copy http://logs.openstack.org/59/534959/1/check/swift-tox-func-post-as-copy/f677750/ : SUCCESS in 7m 09s\n- swift-tox-func-encryption http://logs.openstack.org/59/534959/1/check/swift-tox-func-encryption/1f15d3b/ : SUCCESS in 7m 26s\n- swift-tox-func-ec http://logs.openstack.org/59/534959/1/check/swift-tox-func-ec/9de8fe7/ : SUCCESS in 8m 33s","accounts_in_message":[],"_revision_number":1},{"id":"b5bc9809e1fa28c8399556bbe306ac7bf1d192cc","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2018-01-18 18:18:09.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"b11fddd9663d9403a44f988d37c9845dbe243f20","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-01-18 19:59:58.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- build-openstack-sphinx-docs http://logs.openstack.org/59/534959/2/check/build-openstack-sphinx-docs/021de6e/html/ : SUCCESS in 4m 44s\n- openstack-tox-pep8 http://logs.openstack.org/59/534959/2/check/openstack-tox-pep8/ed886e1/ : SUCCESS in 4m 43s\n- legacy-swift-dsvm-functional http://logs.openstack.org/59/534959/2/check/legacy-swift-dsvm-functional/882c240/ : SUCCESS in 25m 32s\n- legacy-swift-dsvm-functional-identity-v3-only http://logs.openstack.org/59/534959/2/check/legacy-swift-dsvm-functional-identity-v3-only/cf6cf7e/ : SUCCESS in 21m 44s (non-voting)\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/59/534959/2/check/legacy-tempest-dsvm-neutron-full/dd54c38/ : SUCCESS in 1h 27m 01s\n- neutron-grenade http://logs.openstack.org/59/534959/2/check/neutron-grenade/460298b/ : SUCCESS in 47m 14s\n- swift-tox-py27 http://logs.openstack.org/59/534959/2/check/swift-tox-py27/8a0e22f/ : SUCCESS in 6m 59s\n- swift-tox-py35 http://logs.openstack.org/59/534959/2/check/swift-tox-py35/dbee233/ : SUCCESS in 4m 35s\n- swift-tox-func http://logs.openstack.org/59/534959/2/check/swift-tox-func/fe130f7/ : SUCCESS in 7m 39s\n- swift-tox-func-encryption http://logs.openstack.org/59/534959/2/check/swift-tox-func-encryption/41d59d4/ : SUCCESS in 6m 52s\n- swift-tox-func-ec http://logs.openstack.org/59/534959/2/check/swift-tox-func-ec/55cc1d3/ : SUCCESS in 7m 38s","accounts_in_message":[],"_revision_number":2},{"id":"d9d63198815913b58def52b1f23b8925e1909d86","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2018-01-19 01:23:56.000000000","message":"Patch Set 2: Code-Review+2\n\n(7 comments)\n\nI think this is an improvement mainly for the case where pop_queue fails and you\u0027re stuck with a tombstone \u003d\u003d x-delete-at that keeps retrying with very little good reason, the 409 to get the queue popped is strictly better.\n\nThe overwrite scenario is less clearly fixed.  There\u0027s still a scenario where you upload an object at t1 to delete at t100, then you overwrite the object at t2 to delete at t200 and the cleanup of the t100 delete-at record fails.\n\nfrom t100-\u003et200 (or a reclaim age whichever is shorter) we\u0027ll keep getting the 412\u0027s from the object written at t2 because it won\u0027t match x-if-delete-at: t100\n\n... but I don\u0027t really know how to solve that w/o also keeping the x-timestamp with the x-delete-at row - any orig_timestamp \u003e\u003d orig_delete_at_timestamp would be wrong\n\nThere\u0027s a similar case when you just delete the object at t2?","accounts_in_message":[],"_revision_number":2},{"id":"3272d794eca47c66b6775a086e81fdd397e15ad1","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2018-01-23 21:06:20.000000000","message":"Patch Set 2: Workflow+1 Code-Review+2\n\nAlright, I\u0027m convinced. This is only going to affect object DELETE requests with If-X-Delete-At (so only those from the expirer) and where X-Timestamp is in the object\u0027s past, so there\u0027s no possible effect on other requests.","accounts_in_message":[],"_revision_number":2},{"id":"730a285622d96dedd115728f1ae557aab82796bf","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-01-23 21:18:09.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"cb2723e7ed1caaefe9a2e28983a197067107cfa0","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-01-24 08:27:35.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2},{"id":"83b8c97edc2773f8c6983d03bbc92825d7cbb2c9","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-01-24 08:27:35.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- build-openstack-sphinx-docs http://logs.openstack.org/59/534959/2/gate/build-openstack-sphinx-docs/39fa308/html/ : SUCCESS in 8m 39s\n- openstack-tox-pep8 http://logs.openstack.org/59/534959/2/gate/openstack-tox-pep8/96e7d22/ : SUCCESS in 4m 28s\n- legacy-swift-dsvm-functional http://logs.openstack.org/59/534959/2/gate/legacy-swift-dsvm-functional/fff0aee/ : SUCCESS in 25m 56s\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/59/534959/2/gate/legacy-tempest-dsvm-neutron-full/cd8d69b/ : SUCCESS in 1h 27m 11s\n- neutron-grenade http://logs.openstack.org/59/534959/2/gate/neutron-grenade/80a5c2f/ : SUCCESS in 56m 00s\n- swift-tox-py27 http://logs.openstack.org/59/534959/2/gate/swift-tox-py27/45b4b27/ : SUCCESS in 10m 38s\n- swift-tox-py35 http://logs.openstack.org/59/534959/2/gate/swift-tox-py35/4fae3f7/ : SUCCESS in 7m 38s\n- swift-tox-func http://logs.openstack.org/59/534959/2/gate/swift-tox-func/deb55f0/ : SUCCESS in 8m 58s\n- swift-tox-func-encryption http://logs.openstack.org/59/534959/2/gate/swift-tox-func-encryption/e3ada3d/ : SUCCESS in 12m 17s\n- swift-tox-func-ec http://logs.openstack.org/59/534959/2/gate/swift-tox-func-ec/bb9fe97/ : SUCCESS in 10m 30s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"f4cff9fbba76932a4b67f1130d630098497bb4bc","revisions":{"65be7342e6d47affd03ea12675260c3c7162ac93":{"kind":"REWORK","_number":1,"created":"2018-01-17 22:16:14.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/59/534959/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/59/534959/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/59/534959/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/59/534959/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/59/534959/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/59/534959/1"}}},"commit":{"parents":[{"commit":"98bfcc8b474fd0b12a0fc655fe581753462779ac","subject":"internal_client: Don\u0027t retry when we expect the same reponse","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/98bfcc8b474fd0b12a0fc655fe581753462779ac"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2018-01-17 22:07:26.000000000","tz":0},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2018-01-17 22:07:26.000000000","tz":0},"subject":"object-server can 409 in response to x-if-delete-at","message":"object-server can 409 in response to x-if-delete-at\n\nPreviously, if the expirer had a stale work item (because the object\nwas overwritten or deleted, or some other process handled the delete),\nthen it would keep retrying for reclaim_age, but every time it\u0027d get\nback a 412.\n\nNow, have the object-server be smart enough to say, \"I have more recent\ninformation than you\" and let the expirer accept that as success.\n\nChange-Id: I0a94482ed16cb30ce79074e053e6177fe97bcaa9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/65be7342e6d47affd03ea12675260c3c7162ac93"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/65be7342e6d47affd03ea12675260c3c7162ac93"}]},"branch":"refs/heads/master"},"f4cff9fbba76932a4b67f1130d630098497bb4bc":{"kind":"REWORK","_number":2,"created":"2018-01-18 18:18:09.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/59/534959/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/59/534959/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/59/534959/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/59/534959/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/59/534959/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/59/534959/2"}}},"commit":{"parents":[{"commit":"cd2c73fd955317a3f40758cef45ee48bef8fbc79","subject":"internal_client: Don\u0027t retry when we expect the same reponse","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cd2c73fd955317a3f40758cef45ee48bef8fbc79"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2018-01-17 22:07:26.000000000","tz":0},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2018-01-18 18:16:48.000000000","tz":-480},"subject":"object-server can 409 in response to x-if-delete-at","message":"object-server can 409 in response to x-if-delete-at\n\nPreviously, if the expirer had a stale work item (because the object\nwas overwritten or deleted, or some other process handled the delete),\nthen it would keep retrying for reclaim_age, but every time it\u0027d get\nback a 412.\n\nNow, have the object-server be smart enough to say, \"I have more recent\ninformation than you\" and let the expirer accept that as success.\n\nChange-Id: I0a94482ed16cb30ce79074e053e6177fe97bcaa9\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f4cff9fbba76932a4b67f1130d630098497bb4bc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f4cff9fbba76932a4b67f1130d630098497bb4bc"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
