)]}'
{"id":"openstack%2Fswift~292661","triplet_id":"openstack%2Fswift~master~Ibe598b339af024d05e4d89c34d696e972d8189ff","project":"openstack/swift","branch":"master","topic":"bug/1554005","hashtags":[],"change_id":"Ibe598b339af024d05e4d89c34d696e972d8189ff","subject":"Make rsync ignore it\u0027s own temporary files","status":"MERGED","created":"2016-03-15 00:30:37.000000000","updated":"2016-04-14 20:02:19.000000000","submitted":"2016-04-14 20:02:19.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"e33bff19b39382e1deeae733fda151cff22d6f93","_number":292661,"virtual_id_number":292661,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":2,"date":"2016-04-14 20:02:19.000000000","post_submit":true,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"}],"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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2016-04-14 18:00:24.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":2,"date":"2016-04-09 00:30:31.000000000","_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":1,"date":"2016-03-15 07:30:48.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"}],"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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2016-04-14 18:00:24.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-03-15 07:30:48.000000000","updated_by":{"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"},"reviewer":{"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"},"state":"REVIEWER"},{"updated":"2016-04-09 00:30:31.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":"2016-04-14 18:00:24.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"},{"updated":"2016-04-14 20:02:19.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"e0649d075fe204fcd0e250d5a8c417c7e5426327","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-03-15 00:30:37.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f7c110aa285da370f52d920d058ddc70044ce68f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-15 01:15:48.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-swift-pep8 http://logs.openstack.org/61/292661/1/check/gate-swift-pep8/c29273e/ : SUCCESS in 3m 12s\n- gate-swift-docs http://docs-draft.openstack.org/61/292661/1/check/gate-swift-docs/a44110c//doc/build/html/ : SUCCESS in 2m 13s\n- gate-swift-python27 http://logs.openstack.org/61/292661/1/check/gate-swift-python27/8b36a92/ : SUCCESS in 4m 40s\n- gate-swift-python34 http://logs.openstack.org/61/292661/1/check/gate-swift-python34/033dad0/ : SUCCESS in 4m 11s\n- gate-swift-tox-func http://logs.openstack.org/61/292661/1/check/gate-swift-tox-func/c430a98/ : SUCCESS in 5m 35s\n- gate-swift-tox-func-in-process-fast-post http://logs.openstack.org/61/292661/1/check/gate-swift-tox-func-in-process-fast-post/7039f44/ : SUCCESS in 5m 48s (non-voting)\n- gate-tempest-dsvm-full http://logs.openstack.org/61/292661/1/check/gate-tempest-dsvm-full/6013a97/ : SUCCESS in 45m 03s\n- gate-grenade-dsvm http://logs.openstack.org/61/292661/1/check/gate-grenade-dsvm/c44d47e/ : SUCCESS in 38m 51s\n- gate-swift-dsvm-functional http://logs.openstack.org/61/292661/1/check/gate-swift-dsvm-functional/0ff47f8/ : SUCCESS in 24m 59s","accounts_in_message":[],"_revision_number":1},{"id":"8b0bac41d4ed2ff1f63f814726a8795b89e801d6","author":{"_account_id":13052,"name":"SwiftStack Cluster CI","email":"openstack-ci@swiftstack.com","username":"swiftstack-cluster-ci","tags":["SERVICE_USER"]},"date":"2016-03-15 01:26:56.000000000","message":"Patch Set 1:\n\nBuild succeeded \n\n* cluster-swift-tox-func https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/292661/4575/ : SUCCESS\n\n* cluster-swift-ssbench https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/292661/3213/ssbench : SUCCESS\n\n* cluster-swift-tox-func-ec https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/292661/2620/ : SUCCESS\n\n* vm-saio-probe https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/292661/2363/probetests/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"bd52797d76ca9b2492bc18cd0f6c1266e4ac90f5","author":{"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"},"date":"2016-03-15 07:30:48.000000000","message":"Patch Set 1: Code-Review+1\n\nLooks good, works.\nJust out of curiosity, why didn\u0027t you use --temp-dir option to create temporary files in other, not synced, directory?","accounts_in_message":[],"_revision_number":1},{"id":"d5a63099e40718bc78da6fd647d3aca8cf5e6244","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-03-15 22:28:59.000000000","message":"Patch Set 1:\n\nUsing --exclude instead of --temp-dir was not a conscious choice - i hadn\u0027t considered --temp-dir; it seems like it might be a reasonable alternative approach.\n\nBut only assuming we can get into some path that *already exists* on the *same disk* that\u0027s not under the datadir (/srv/node/dev/tmp like the object-server uses is probably ideal).\n\nBut we\u0027d still need the --exclude for any already existing.  Plus the WIP I have for the auditor to cleanup stale tempfiles will still be needed if anyone is already in this state - although it wouldn\u0027t be sufficient for cleaning up the temp path (I might just need to validate that job is already handled by the the replicator when he cleans up stale object-server tempfiles).\n\nSo, --temp-dir could work; but I think it would only be *additional* effort.  And if this works, and solves the existing problems too - doing the additional work has a more dubious value.","accounts_in_message":[],"_revision_number":1},{"id":"6e7a1f3b192e6d2d4546b8728afdb4ac83d9862c","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2016-03-16 00:35:52.000000000","message":"Patch Set 1:\n\nYou want to have the tempfile in the same dir as the destination so that it\u0027s in the same XFS allocation group as the containing directory.","accounts_in_message":[],"_revision_number":1},{"id":"fe58eab3ad4e0da07cfed14383058c58ce946b45","author":{"_account_id":18639,"name":"Marek Kaleta","email":"mk@m1k.cz","username":"mara"},"date":"2016-03-16 08:36:42.000000000","message":"Patch Set 1:\n\nThanks clarification. --exclude is surely the right way.","accounts_in_message":[],"_revision_number":1},{"id":"0a7475c2d2db94d855379046690d3e11a43b7dae","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2016-04-09 00:30:31.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"1cf20d8a929b447c612943b5a12cbf15ea396a51","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2016-04-11 09:51:41.000000000","message":"Patch Set 1: Code-Review+1\n\n(1 comment)\n\nI found it quite easy to provoke temp files being replicated around, and temp files of temp files, on master! This fixes it, the test fail when the rsync option is reverted, so all looks good.\n\nJust one query inline before adding +2A about the regex cf. that used by the auditor.","accounts_in_message":[],"_revision_number":1},{"id":"909aee47cc6bf3e5bd872a88091b60c23ab0a40e","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2016-04-14 18:00:24.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\nJust cycled back to this and adding +A - on reflection, the current patch is not broken and makes huge progress, so no reason not to merge.\n\nIF there can be \u0027_\u0027 in the temp file suffixes then we can add that to the excludes pattern. If not then the auditor regex can be changed.","accounts_in_message":[],"_revision_number":1},{"id":"b0ec4e54d870917501eae2186da0558026fb0b49","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-14 18:00:29.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"b10fe4bbeda72f3fdac2d3ac0a30d533eb1506b9","date":"2016-04-14 20:02:19.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":1},{"id":"ba890c8e38a93cdb5a631a494570ebead832b5fb","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-04-14 20:02:19.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-swift-docs http://docs-draft.openstack.org/61/292661/1/gate/gate-swift-docs/a38eea9//doc/build/html/ : SUCCESS in 2m 09s\n- gate-swift-pep8 http://logs.openstack.org/61/292661/1/gate/gate-swift-pep8/b52da73/ : SUCCESS in 3m 06s\n- gate-swift-python27 http://logs.openstack.org/61/292661/1/gate/gate-swift-python27/6517112/ : SUCCESS in 6m 07s\n- gate-swift-python34 http://logs.openstack.org/61/292661/1/gate/gate-swift-python34/4e04c3a/ : SUCCESS in 5m 47s\n- gate-swift-tox-func http://logs.openstack.org/61/292661/1/gate/gate-swift-tox-func/91ab3f0/ : SUCCESS in 6m 32s\n- gate-tempest-dsvm-full http://logs.openstack.org/61/292661/1/gate/gate-tempest-dsvm-full/c5b7e65/ : SUCCESS in 38m 20s\n- gate-grenade-dsvm http://logs.openstack.org/61/292661/1/gate/gate-grenade-dsvm/6a15c58/ : SUCCESS in 37m 24s\n- gate-swift-dsvm-functional http://logs.openstack.org/61/292661/1/gate/gate-swift-dsvm-functional/d4e3a9e/ : SUCCESS in 22m 10s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"f87a5487b5224f77261d82a1087d31820c29e8f8","revisions":{"f87a5487b5224f77261d82a1087d31820c29e8f8":{"kind":"REWORK","_number":1,"created":"2016-03-15 00:30:37.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/61/292661/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/61/292661/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/61/292661/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/61/292661/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/61/292661/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/61/292661/1"}}},"commit":{"parents":[{"commit":"9e90d309621584be173b9be7ac91c469a013ab96","subject":"Imported Translations from Zanata","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9e90d309621584be173b9be7ac91c469a013ab96"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2016-03-14 23:52:50.000000000","tz":-420},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2016-03-15 00:30:10.000000000","tz":-420},"subject":"Make rsync ignore it\u0027s own temporary files","message":"Make rsync ignore it\u0027s own temporary files\n\nIn situations where rsync may inadvertently be unable to cleanup it\u0027s\ntemporary files we shouldn\u0027t spread them around the cluster.\n\nBy asking our rsync subexec to --exclude patterns that match it\u0027s own\nconvention for temporary naming we\u0027ll only ever transfer real replicated\nartifacts and never temporary artifacts which should always be ignored\nuntil they are fully transfered.\n\nCleanup of stale rsync droppings should be performed by the auditor and\nwill be addressed in a separate change related to lp bug #1554005.\n\nCloses-Bug: #1553995\n\nChange-Id: Ibe598b339af024d05e4d89c34d696e972d8189ff\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f87a5487b5224f77261d82a1087d31820c29e8f8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f87a5487b5224f77261d82a1087d31820c29e8f8"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
