)]}'
{"id":"openstack%2Fswift~968358","triplet_id":"openstack%2Fswift~master~Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90","project":"openstack/swift","branch":"master","topic":"p-timestamp-collision","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2025-11-27 00:38:56.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90","subject":"TombstoneReclaimer: quote string timestamp in sql query","status":"MERGED","created":"2025-11-25 17:52:18.000000000","updated":"2025-11-27 00:39:47.000000000","submitted":"2025-11-27 00:38:56.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":3,"unresolved_comment_count":2,"has_review_started":true,"submission_id":"968358-p-timestamp-collision","meta_rev_id":"5bc65f6fb3a4643fc284690a9734dad1fdb0fff6","_number":968358,"virtual_id_number":968358,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-11-27 00:38:56.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":2,"date":"2025-11-26 23:25:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":1,"date":"2025-11-26 16:12:27.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_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":{"approved":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"all":[{"value":1,"date":"2025-11-26 23:25:20.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_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":"2025-11-25 19:46:42.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":"CC"},{"updated":"2025-11-25 19:50:03.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"},{"updated":"2025-11-26 14:11:36.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"CC"},{"updated":"2025-11-26 23:25:20.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"}],"messages":[{"id":"25535219f9704fe45607b0d2c20418108337736a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-25 17:52:18.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e56042a38c02f93cbfae2e35c279dc361c647c1b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-25 18:41:11.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"813e6307831d0628662da589a5043bf224b517f6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 19:46:42.000000000","message":"Patch Set 2:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5d524352575f4d0095c6be1ce1486f44\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/03e0b6cc38a44e42b310854821ea165e : FAILURE in 1h 03m 11s","accounts_in_message":[],"_revision_number":2},{"id":"f520b3a49ea5508333c50c6b54bcbaa226d3ffb4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 19:50:03.000000000","message":"Patch Set 2: 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/d284704b2db04c30a840cc1fbf5b225c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/859f071e21e943cebe0fbce1d87a2ee3 : SUCCESS in 10m 11s\n- grenade https://zuul.opendev.org/t/openstack/build/80c5f811edb244f3800ee97d1f28e407 : SUCCESS in 59m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ea3c6e7966494ac5bc0e70d113bccb84 : SUCCESS in 1h 02m 44s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a847fad048874e13bf019a1d9e1314e9 : SUCCESS in 55m 17s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4353129c0e5b4fcd9921863da8f4c6a0 : SUCCESS in 1h 05m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e83a25584e6f48449826442d74573f59 : SUCCESS in 19m 59s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9248af123e7140c4b88ddc3208d05f10 : SUCCESS in 12m 16s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/15f89a901be7464b88b2a094729daeab : SUCCESS in 21m 15s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/606ffd042ead4bbb9c9a6d1585c35869 : SUCCESS in 6m 15s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4928bd54619e4b659aa76bc3845aec3f : FAILURE in 10m 32s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/06700866bfec4b01bb9d4e9c1cf8b6e0 : FAILURE in 20m 59s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/6c0cef371a134a8cb8fcbdb99861cf60 : FAILURE in 23m 50s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6e950f68b4f34d8390f9fcee985d70cc : FAILURE in 24m 53s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e04095e862b343fcbd0c02953773ccc2 : SUCCESS in 15m 30s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/0ec310e9a20a4c24941fd76cb6ca26ee : SUCCESS in 15m 15s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/f4441d5c2d5e4fb0aaae855f823b928c : SUCCESS in 10m 03s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c1240e9f9b8a495698a114bdfc3056a3 : SUCCESS in 5m 10s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/28d802c272b14e7f99b59d78ec1a7115 : SUCCESS in 17m 00s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7d00a1f1209946279e9b7ee4958d93e6 : SUCCESS in 8m 32s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5d73a689b27a49e09e7bc0c23fe9dd79 : SUCCESS in 54m 19s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1fb4c6afcaa8485e87afc03553cd275b : SUCCESS in 48m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7e15f0c10f6348c3b0c31fd3afe46258 : SUCCESS in 51m 02s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/77a0f46614ee44fe89efa446dbd90ecf : FAILURE in 27m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/947d26406ce648099b111e36a51ff144 : SUCCESS in 4m 30s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/78f2f55316ae4d09b07fe6ef9f674197 : SUCCESS in 11m 43s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/999fae581e63450e88193f2b48517d08 : SUCCESS in 50m 12s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9ba6c05e10f94ca18cd38ba8a6e59dfc : SUCCESS in 57m 59s","accounts_in_message":[],"_revision_number":2},{"id":"f52223c1036b8156784b25abd2aff0203a59845a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-26 05:25:32.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"8d9c76fc92c359d30cb4d10e020fb449834ad0e5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 06:33:52.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7827a03211f6461a86f6b87b24fad0ef\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d4cbee424a0444b1bae670d6a3532a0d : SUCCESS in 5m 27s\n- grenade https://zuul.opendev.org/t/openstack/build/18b0eede279542e1971dfce515b781aa : SUCCESS in 1h 01m 53s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ba5d6852a58d48378bf770f3805cfc1f : SUCCESS in 44m 45s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/81456d8503e149ecaa18f8a5c753506b : SUCCESS in 51m 49s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ed87d0a0770a418f96686a44c824803b : SUCCESS in 1h 01m 08s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9aee6832c23a4d39be7f3445bbbf249a : SUCCESS in 19m 43s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f9ed72461f374911b1f1ab9aec3441d6 : SUCCESS in 18m 32s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c30b9647bc044398a44449e40ecbd1f5 : SUCCESS in 11m 07s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/40f092b3581c4b66952169064019e3cd : SUCCESS in 4m 54s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ae2a0ccd6cb54ec69bebc83a09ad623e : SUCCESS in 24m 35s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/d62fdbf2e9ad45bfbd2c6a50e206580a : SUCCESS in 16m 07s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/79771674941b4c3087b1f2dbbba87e02 : SUCCESS in 12m 19s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d9f4049a682a41f9b53480f5c3ce6632 : SUCCESS in 11m 12s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/bcedc642a50d4c60b29f3c23a8d66d9f : SUCCESS in 13m 04s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/c99f88cd2b604622aa27801d75edc2aa : SUCCESS in 14m 32s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0535e0a3668c4a8ab2c7b73d4387e22c : SUCCESS in 13m 29s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/3fd926d43bcf4110bef24febc68fe22f : SUCCESS in 4m 05s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/28f9802633cd4ae682a4c3c29f70f5e9 : SUCCESS in 8m 00s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a57d75922e7847529299a473cdf1a987 : SUCCESS in 6m 13s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/98ebd333ae7a4b0199a74404a160fee9 : SUCCESS in 58m 44s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1f19a90bd22f48c4b1ad9d0afeaa029f : SUCCESS in 52m 02s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/c8a5609dd15e493c963d9d5302a02e02 : SUCCESS in 48m 15s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/0c4673bd9e3a49d4bfed87296616db2f : SUCCESS in 27m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a332ad79ecd542f49d16b102e2878d22 : SUCCESS in 5m 15s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/83b719edaa9f44cb8c25d35144ba6ad1 : SUCCESS in 15m 26s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/95ef016f028b483e9b23fa866160f918 : SUCCESS in 54m 17s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/90b59ae181aa411b9edf6cecf0d6bfc0 : SUCCESS in 59m 01s","accounts_in_message":[],"_revision_number":3},{"id":"b40f51e71f8709191f7f6d2d295137482c87f560","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 06:35:56.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ef3b3201a26e417e901ecc81dac011db\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/e9f96e6c42c94f9eb6bfc097e790d1cf : SUCCESS in 1h 07m 47s","accounts_in_message":[],"_revision_number":3},{"id":"353033ed72fbc6ea532f844710ce1e75edb2edae","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-26 11:38:56.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"71008147869e72d488d9e2c7dca1a1164b7e750a","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-26 11:48:41.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"a74d6046fd57c6d32c00fe30a427fc4aa6e897b4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 12:39:52.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8f9366c385a94d33be246d5068fe5983\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cc85d2f1d1b34e5186f58c75e2429ec1 : SUCCESS in 8m 10s\n- grenade https://zuul.opendev.org/t/openstack/build/23586acf5f054e1984cecdcbc734447a : SUCCESS in 32m 45s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/68e3c2f72c134d8b887d2f7ab9fe5d02 : SUCCESS in 31m 56s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/44663c0ad3da4ca690b26ad5e389af2c : SUCCESS in 50m 03s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e25a3cdceba34ddfa92aa1963e33dab9 : SUCCESS in 56m 50s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/df3b65ba10b64f58941116b53ed05eda : SUCCESS in 19m 10s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/06b3d79251184ae7b20f965edc226874 : SUCCESS in 19m 36s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a9ff57a8fdde47a5af57cb0f27c04a46 : SUCCESS in 20m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7969b554124b4472bcc95fa422136fa1 : SUCCESS in 7m 28s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b61ed77bcca440d8ae14600c3a564f0b : SUCCESS in 27m 49s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/df35e3b13c4649639ab3a9a7ec85e34a : SUCCESS in 20m 18s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/4026ed9f9d6e4c44b1fdf1e21f1cc348 : SUCCESS in 28m 50s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9b5571608b134290a9db76130c0b3212 : SUCCESS in 23m 24s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8c136fa16b044298b4e39788f3fbadb3 : SUCCESS in 8m 36s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/656e4479fef04d138f8400d9c54ab582 : SUCCESS in 15m 46s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/190c7e08aa6b4d33b069e2fe42df2ff1 : SUCCESS in 15m 17s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/62fc0dae933943bab00c79deef48c0a8 : SUCCESS in 7m 20s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/dda6589a2bb74c1a8cae18db994873f8 : SUCCESS in 16m 05s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/94372c2cb5f345e59f50873d5726dabf : SUCCESS in 8m 16s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e35a82c4c1744935b23bbbbd4798976f : SUCCESS in 56m 10s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/212365f4e467499d9e359cf1e29ad5d7 : SUCCESS in 49m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3f50e93f245b4bb7a7f354dc68bef430 : SUCCESS in 31m 12s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/17b139e16cdd434daa7b8a6a7546ba01 : SUCCESS in 12m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1a4b2c0e6b914d0eafa7f4e378c6ec34 : SUCCESS in 4m 09s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/106f1556c55644b79aa5ce40feb26540 : SUCCESS in 18m 13s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/bb972f0841074ff4ad5ebc168772e611 : SUCCESS in 54m 13s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/541c592365454c4c8feb499ad662e26b : SUCCESS in 37m 52s","accounts_in_message":[],"_revision_number":4},{"id":"0e4417c450686552397d60660adef1505c8c2b23","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 13:53:21.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8fca4347b6a74db4bc1a4f9f61aeaa52\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/b8efc42139774155914d85539ab37122 : SUCCESS in 1h 38m 14s","accounts_in_message":[],"_revision_number":4},{"id":"336f541d59e08110c1eec4d252623a32b315d5e1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-26 14:11:36.000000000","message":"Uploaded patch set 5: Commit message was updated.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"803ddef4e4aac5354be816adfe2bda791aac2d68","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 14:54:05.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/30791c46be9840e2bedae18fcbf5bcb3\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/760c3712439d4586a523963ac991698d : SUCCESS in 37m 15s","accounts_in_message":[],"_revision_number":5},{"id":"89a69c05fc2238b0bdb7e174f01c6ee015dd21ac","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 15:22:35.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7c5edb1942d84061b6f968fccac27ad4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0c9b061c0cbc4bfaa3a6696624d1aae6 : SUCCESS in 10m 39s\n- grenade https://zuul.opendev.org/t/openstack/build/aee1ea84a8f54eda8c9951c084c4222a : SUCCESS in 32m 39s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8f19ccfa06494af288aa33a5b064c4d4 : SUCCESS in 31m 30s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b27dc488dbbf49f7ad0b68118a75d192 : SUCCESS in 58m 33s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d85fa17874a549c684bcf68701c90446 : SUCCESS in 46m 55s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bd6d8edda36741d4ae7841872d0d4614 : SUCCESS in 17m 55s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4b2dd860c134494ab730c7a90bd33c8b : SUCCESS in 10m 40s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/69dd9f0261b04b048d5af6bf05824bfd : SUCCESS in 16m 16s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/9054d6be46844468aeab2af154562b02 : SUCCESS in 6m 52s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/1e55495f1e804bd6ad0c6d471d673c94 : SUCCESS in 27m 09s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/5d86544fc35346fabcaead850193bfad : SUCCESS in 23m 22s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/7b518989ed16466cb4ecdbeff97d182a : SUCCESS in 12m 21s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9840d10877154041827d6e5d253660b9 : SUCCESS in 13m 27s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5ab66a71504d45d9b02387fe89385ab3 : SUCCESS in 15m 21s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/f75784a4e8204b2e854c82960b760030 : SUCCESS in 14m 54s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/96628c6c1b2d49e4a5eeda3aa9838773 : SUCCESS in 15m 35s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/78240e15a4244c3895e6ba5c74540f8a : SUCCESS in 5m 49s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a8db23caf8084b518c6027c09ede3686 : SUCCESS in 17m 05s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/b295284c07a64a3385acfb6d84feae3a : SUCCESS in 8m 35s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/2fe86cb20b7b406990cb1aa9862e409d : SUCCESS in 35m 34s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0cc509fc22814f28bbc507c02594ac66 : SUCCESS in 25m 15s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ce6de987c6da4096a175a83066a4c6a3 : SUCCESS in 50m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/931c9ac1e79d4e5d9af2cebdb650506a : SUCCESS in 25m 15s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b87736e1da594f189bee01c960e15cdd : SUCCESS in 2m 37s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/54a448fa02094b56a9ec5572fcc26ddd : SUCCESS in 25m 42s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/062949644076448293b2e0e0f36f8b74 : SUCCESS in 58m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a56aa4d2d21a4fb68700187e02834c81 : SUCCESS in 1h 01m 54s","accounts_in_message":[],"_revision_number":5},{"id":"3140b75ee4e5f9de3950135354ecc33f9022c6c5","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-26 16:12:27.000000000","message":"Patch Set 5: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"396335157e281fb14a9a0f27a8a1c8c4db83db23","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-26 23:25:20.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":5},{"id":"1b44ba4cab8cdda76a2f4ad7f8606e42252a9400","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 23:25:45.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"8b60ffe5d610b0efe162b628da33da214441c7ce","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 00:38:56.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a7d56ddd44ef4be8ab76f08113840a89\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b3dcd39a64034a74a72bf4aadb2b0464 : SUCCESS in 5m 25s\n- grenade https://zuul.opendev.org/t/openstack/build/132ae240d92d4542b301fdac6b05cd3a : SUCCESS in 57m 26s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b8ae336b435943b58ac0f1a0a6566065 : SUCCESS in 1h 06m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/19d6c9fbc737496688e48dfee6147d9f : SUCCESS in 1h 00m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d360bf3a77874df19baae3d329b76fbb : SUCCESS in 44m 38s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/8616ad30bbbb47638410af5a47ff8c1a : SUCCESS in 6m 54s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5b61da3de66a4733ac68a4da2f78394c : SUCCESS in 18m 56s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/04a0ed6ef2ee41d7b62cc587cfd8f127 : SUCCESS in 21m 23s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/95b51ae3bebc498d90c89e81f92c5257 : SUCCESS in 12m 11s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5cd081d6256f4c94bce4befaaf66226e : SUCCESS in 28m 07s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5d500cb7f62c4c31aadd2f8ee5bc0c14 : SUCCESS in 11m 11s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/0f99fc668f3947e79e3a8efddd45094e : SUCCESS in 14m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/38c59ed9f321460c81e695d279cbf77f : SUCCESS in 15m 31s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/d009c530d3f1424c9062dbe564462275 : SUCCESS in 5m 46s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f90f8807149245469851a9d69a37ced2 : SUCCESS in 5m 47s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f5f880595d984cb8834a01a7b4a1c12e : SUCCESS in 35m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/874485f2ac6b4a45a327663eb24936a2 : SUCCESS in 32m 23s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/09e0660c045d4b8985cb99062568c58c : SUCCESS in 47m 28s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6929746d68344e27a54dd8d0d99bc127 : SUCCESS in 20m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2bcd135f0c224c5f8fc1d9b8bc3ddded : SUCCESS in 3m 34s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/da4af337762441c4ba3a7d612449ace8 : SUCCESS in 14m 09s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5fdc33fa545742e9b8f0721a34ee5f1d : SUCCESS in 37m 22s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/79c7bea96e304c2882b6312d4e6af0f4 : SUCCESS in 1h 01m 35s","accounts_in_message":[],"_revision_number":5},{"id":"de1ce0d7faf2a051770b97d1d564139ff1e92839","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 00:38:56.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"5bc65f6fb3a4643fc284690a9734dad1fdb0fff6","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 00:39:47.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b9d18ca470ad4819bbd6beeb819c5958\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/beb96fc691ad47018195b5c6851b8a3d : SUCCESS in 43s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/7155bcd2c77d41e7ae9b7002ba4bf150 : SUCCESS in 36s (non-voting)","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"48937cd18360b52d8205d5059a5cb079ea4897a4","revisions":{"ba1c03e56a8e01d88c89be8e45db050e2dce6863":{"kind":"REWORK","_number":1,"created":"2025-11-25 17:52:18.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/58/968358/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/58/968358/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/58/968358/1"}}},"commit":{"parents":[{"commit":"6669ae3c345ce76ee573cf0e7533641479d02137","subject":"WIP timestamps: use internal timestamp format in db file names","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6669ae3c345ce76ee573cf0e7533641479d02137"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 14:56:52.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 17:51:45.000000000","tz":0},"subject":"WIP timestamps: quote string timestamp in sql query","message":"WIP timestamps: quote string timestamp in sql query\n\nTODO: add unit test\n\nPreviously the sql query would raise an error if the timestamp had a\nhex part, i.e. is not a str(float). Text in sql queries should be\nquoted.\n\nChange-Id: Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ba1c03e56a8e01d88c89be8e45db050e2dce6863"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ba1c03e56a8e01d88c89be8e45db050e2dce6863"}]},"branch":"refs/heads/master"},"2a83c232b9252aceba287fd0e5b0bc8c6eaa302b":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2025-11-25 18:41:11.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/58/968358/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/58/968358/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/58/968358/2"}}},"commit":{"parents":[{"commit":"2ec49fd54e3dd76cf955c719295dd3fa9a3c0d4c","subject":"WIP timestamps: use internal timestamp format in db file names","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2ec49fd54e3dd76cf955c719295dd3fa9a3c0d4c"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 14:56:52.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 18:40:58.000000000","tz":0},"subject":"WIP timestamps: quote string timestamp in sql query","message":"WIP timestamps: quote string timestamp in sql query\n\nTODO: add unit test\n\nPreviously the sql query would raise an error if the timestamp had a\nhex part, i.e. is not a str(float). Text in sql queries should be\nquoted.\n\nChange-Id: Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2a83c232b9252aceba287fd0e5b0bc8c6eaa302b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2a83c232b9252aceba287fd0e5b0bc8c6eaa302b"}]},"branch":"refs/heads/master"},"a849b7224961e2abf7894384039b04ed50995ad2":{"kind":"REWORK","_number":3,"created":"2025-11-26 05:25:32.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/58/968358/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/58/968358/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/58/968358/3"}}},"commit":{"parents":[{"commit":"cdd585a22279f1787cf15ef6dc9e61b89df1d768","subject":"WIP timestamps: use internal timestamp format in db file names","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cdd585a22279f1787cf15ef6dc9e61b89df1d768"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 14:56:52.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-11-26 05:22:49.000000000","tz":660},"subject":"WIP TombstoneReclaimer: quote string timestamp in sql query","message":"WIP TombstoneReclaimer: quote string timestamp in sql query\n\nPreviously the sql query would raise an error if the timestamp had a\nhex part, i.e. is not a str(float). Text in sql queries should be\nquoted.\n\nChange-Id: Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a849b7224961e2abf7894384039b04ed50995ad2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a849b7224961e2abf7894384039b04ed50995ad2"}]},"branch":"refs/heads/master"},"37c7b867a0ed427738a1fad92ed12194f756e488":{"kind":"REWORK","_number":4,"created":"2025-11-26 11:38:56.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/58/968358/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/58/968358/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/58/968358/4"}}},"commit":{"parents":[{"commit":"f324fb4ad3f20b1c3fbfd838c782a1726e1bf7f7","subject":"Merge \"tests: pass Timestamps to date_header_format\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f324fb4ad3f20b1c3fbfd838c782a1726e1bf7f7"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 14:56:52.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-26 11:38:14.000000000","tz":0},"subject":"TombstoneReclaimer: quote string timestamp in sql query","message":"TombstoneReclaimer: quote string timestamp in sql query\n\nReclaim age and sync \"timestamp\" args passed to\nDatabaseBroker.reclaim() and TombstoneReclaimer.__init__() are\nexpected to be floats. This is adhered to in code, but many tests pass\na string representation of a Timestamp instance. The string has been\ntolerated because it has so far always been identical to a\nstr(float).\n\nHowever, if a Timestamp instance has an offset then its string\nrepresentation is not equivalent to str(float), and\nTombstoneReclaimer.reclaim() would raise an error because the reclaim\nage value in the SQL query is not quoted and does not appear to be any\nrecognised type.\n\nThis patch quotes the reclaim age in the TombstoneReclaimer SQL\nquery. This makes it tolerant of being passed string representations\nof Timestamps with offsets. This is not yet expected, but,\nnevertheless, text in SQL queries should be quoted.\n\nChange-Id: Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/37c7b867a0ed427738a1fad92ed12194f756e488"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/37c7b867a0ed427738a1fad92ed12194f756e488"}]},"branch":"refs/heads/master"},"48937cd18360b52d8205d5059a5cb079ea4897a4":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2025-11-26 14:11:36.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/58/968358/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/58/968358/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/58/968358/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/58/968358/5"}}},"commit":{"parents":[{"commit":"f324fb4ad3f20b1c3fbfd838c782a1726e1bf7f7","subject":"Merge \"tests: pass Timestamps to date_header_format\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f324fb4ad3f20b1c3fbfd838c782a1726e1bf7f7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-11-25 14:56:52.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-26 14:10:57.000000000","tz":0},"subject":"TombstoneReclaimer: quote string timestamp in sql query","message":"TombstoneReclaimer: quote string timestamp in sql query\n\nReclaim age and sync \"timestamp\" args passed to\nDatabaseBroker.reclaim() and TombstoneReclaimer.__init__() are\nexpected to be floats. This is adhered to in code, but many tests pass\na string representation of a Timestamp instance. The string has been\ntolerated because it has so far always been identical to a\nstr(float).\n\nHowever, if a Timestamp instance has an offset then its string\nrepresentation is not equivalent to str(float), and\nTombstoneReclaimer.reclaim() would raise an error because the reclaim\nage value in the SQL query is not quoted and does not appear to be any\nrecognised type.\n\nThis patch quotes the reclaim age in the TombstoneReclaimer SQL\nquery. This makes it tolerant of being passed string representations\nof Timestamps with offsets. This is not yet expected, but,\nnevertheless, text in SQL queries should be quoted.\n\nChange-Id: Ic70689db1e4ddc6f526c283bf0cbb5862b16fd90\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/48937cd18360b52d8205d5059a5cb079ea4897a4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/48937cd18360b52d8205d5059a5cb079ea4897a4"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
