)]}'
{"id":"openstack%2Fswift~936196","triplet_id":"openstack%2Fswift~master~I357ed52b568d2e18d0bcba0880575ad83b002589","project":"openstack/swift","branch":"master","topic":"p-fix-versioning-with-offset-timestamps","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2024-11-26 18:45:22.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}}},"hashtags":[],"change_id":"I357ed52b568d2e18d0bcba0880575ad83b002589","subject":"WIP Support versioning of object with offset timestamps","status":"ABANDONED","created":"2024-11-25 19:19:10.000000000","updated":"2024-12-18 15:34:33.000000000","total_comment_count":2,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"dff702c86fc07064d7178740b5716d7e964feff2","_number":936196,"virtual_id_number":936196,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2024-11-25 20:21:10.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"rejected":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":-2,"date":"2024-11-25 19:19:34.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"rejected":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":-1,"date":"2024-11-25 19:19:34.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-11-25 20:21:10.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":"fddccd36c1f882881b806ee53833e8f08ffce46d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2024-11-25 19:19:10.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"0a87fa8f34b0ebf4986279b38378706e2a747ecd","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2024-11-25 19:19:34.000000000","message":"Patch Set 1: Code-Review-2 Workflow-1","accounts_in_message":[],"_revision_number":1},{"id":"c16f878c403de76d506556ee6e8478c5c45b6038","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-11-25 20:21:10.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\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/d5d108fce19f4ba3ba1bc2bea9a1490f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2ca53b4cb6e84c2e9718279921e0c0a9 : SUCCESS in 9m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/3efcf0147503425b847338ec8bf501fc : SUCCESS in 36m 43s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/521d59c764974e5791ac2cd75a352cc0 : SUCCESS in 33m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/490794fb0df74bfe82569058812e5f4e : SUCCESS in 42m 17s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d56b961eb4b24f03a6b50e62baee50ee : SUCCESS in 38m 31s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/63ecd9e3bff44e2981e18dbf075b5f96 : SUCCESS in 19m 49s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6c5df63fb6ed4b3d8dd5cb095d64d8ae : SUCCESS in 11m 53s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/db1eeddd94b04ca49ff50dc47432d37e : SUCCESS in 12m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ff0825ddd6434c4792c5e2a3a8462209 : SUCCESS in 4m 18s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a119bbadb32347ceab3f28038ec10fc3 : FAILURE in 10m 15s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/ba1c80aaf0f243ec8eb2b63cb3e055cc : FAILURE in 22m 40s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/d9d953bbd11e45bbbd4901d8ad3306f4 : FAILURE in 19m 43s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/a810c629aeeb450491747d215d632b5a : FAILURE in 13m 28s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/2669dfee06ec4d50b365c8561e7c3550 : SUCCESS in 9m 24s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/eab47d708ddc426eb8c3d890fd53172a : SUCCESS in 9m 48s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/ca8f7ebc3978418db697696b10b3eeaf : SUCCESS in 17m 21s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1ffa73e24ec048f99a581590636db343 : SUCCESS in 8m 44s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/563608afdf584a39b72629dc0de6e63f : SUCCESS in 9m 48s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/2ed249a913014309b42232911df6797d : SUCCESS in 9m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/20bfb577615b4f9f8c9be236f5120087 : SUCCESS in 4m 31s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/62ac7f0a51ff4517a4e5d50b4c423009 : SUCCESS in 9m 43s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/72f07b338464486cb582e748d0bd0115 : SUCCESS in 6m 52s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/447715b37eb44a138176e588a67e639a : SUCCESS in 35m 51s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/18a26a336edb40a28c73ddb97b22f183 : SUCCESS in 28m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e27b5ba3b5774a8697d39df3dddb5025 : SUCCESS in 28m 54s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/29b5d1fd5c5240ab80fa7c3575a9a337 : FAILURE in 11m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/de409479c61d40e6adf8fb90dc81b3b8 : SUCCESS in 3m 04s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6e910f0ae8244936bf016a88c1b00581 : SUCCESS in 11m 16s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6863202690ea4230a52bf9e808c660ec : SUCCESS in 32m 04s","accounts_in_message":[],"_revision_number":1},{"id":"4fbc26069e555ad2f2087dc23782aef98c23c63d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-11-25 23:08:14.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6d0055c8a87b4347bcd57239056fd14b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3873cedf196e4a24b21bc559c526d705 : FAILURE in 1h 29m 18s","accounts_in_message":[],"_revision_number":1},{"id":"9f4748bf96c943fedd42779cc4d88262fad2bbee","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2024-11-26 18:45:22.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"dff702c86fc07064d7178740b5716d7e964feff2","tag":"autogenerated:gerrit:abandon","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2024-12-18 15:34:33.000000000","message":"Abandoned\n\nnot an issue that needs fixing","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"2956988eff4dc7f6dab7b34f23161ef7f0ec7984","revisions":{"2956988eff4dc7f6dab7b34f23161ef7f0ec7984":{"kind":"REWORK","_number":1,"created":"2024-11-25 19:19:10.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/96/936196/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/96/936196/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/936196/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/936196/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/936196/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/96/936196/1"}}},"commit":{"parents":[{"commit":"fa889358acf7675efba2de095777886b4c1ff7f8","subject":"Ensure correct content-type in container HEAD response","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fa889358acf7675efba2de095777886b4c1ff7f8"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2024-11-25 18:52:35.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2024-11-25 18:53:56.000000000","tz":0},"subject":"WIP Support versioning of object with offset timestamps","message":"WIP Support versioning of object with offset timestamps\n\nTODO: this needs a probe test to validate my claims that\nreconciliation+versioning is broken.\n\nVersion IDs are the inversion of an object\u0027s timestamp, in order that\nversion IDs sort in reverse chronological order (newest first).\n\nThe reconciler increments an object\u0027s timestamp offset if when moving\nthe object from one policy to another.\n\nPreviously, attempting to invert a Timestamp which has non-zero offset\nwould result in a ValueError. This means that objects moved by the\nreconciler could not be PUT to a versions container, either during\nreconciliation to a container with versioning enabled, or after\nreconciliation if versioning is subsequently enabled and the\nreconciled object is overwritten.\n\nThis patch modifies the Timestamp inversion to support offsets.\n\nWith this patch, a version ID for an object at Timestamp(T, offset\u003d1)\nwill be greater than a version ID for an object at Timestamp(T,\noffset\u003d2), as required for reverse chronological sorting.\n\nHowever, a version ID for an object at Timestamp(T, offset\u003d1) will be\ngreater than an *old style* version ID for an object at Timestamp(T)\ni.e. not strictly chronological ordering. This might be relevant if,\nprior to upgrade, an object PUT has written replicas of the object\ninto multiple policies while versioning is enabled. A version ID is\ncreated in the versions container. The reconciler would re-write the\nobject to the correct policy with an offset timestamp, creating\nanother version ID in the versions container which would sort after\nthe existing old-style version ID. Given that (a) both versions were\nin fact PUT at the same and (b) the user will be surprised to have 2\nversions, the author contends that the sort order is not significant\nin this case.\n\nChange-Id: I357ed52b568d2e18d0bcba0880575ad83b002589\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2956988eff4dc7f6dab7b34f23161ef7f0ec7984"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2956988eff4dc7f6dab7b34f23161ef7f0ec7984"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Code-Review\u003dMIN"],"failing_atoms":["label:Code-Review\u003dMAX"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{}}}]}
