)]}'
{"id":"openstack%2Fswift~993396","triplet_id":"openstack%2Fswift~master~I377cad02c76942d654cfc8f32606b5f4a25b77ca","project":"openstack/swift","branch":"master","attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-08-04 10:53:37.000000000","reason":"\u003cGERRIT_ACCOUNT_6968\u003e replied on the change","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}},"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-08-07 21:08:27.000000000","reason":"\u003cGERRIT_ACCOUNT_39164\u003e mentioned you in a comment","reason_account":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"}},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2026-08-04 10:53:37.000000000","reason":"\u003cGERRIT_ACCOUNT_6968\u003e replied on the change","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I377cad02c76942d654cfc8f32606b5f4a25b77ca","subject":"Offload reads in the object server","status":"NEW","created":"2026-06-15 15:27:46.000000000","updated":"2026-08-07 21:08:27.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":21,"unresolved_comment_count":11,"has_review_started":true,"meta_rev_id":"28f9fd4a3c8707c2ba7f8837951057790f93b989","_number":993396,"virtual_id_number":993396,"owner":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-04 12:18: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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"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":{"all":[{"_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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-15 16:44:32.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":"2026-06-18 00:05:03.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":"CC"},{"updated":"2026-06-29 14:58:59.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":"CC"},{"updated":"2026-08-07 21:08:27.000000000","updated_by":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"reviewer":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"state":"CC"}],"messages":[{"id":"387fa3719af82fce8ed40f67c5b9d507e79d2272","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-15 15:27:46.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1df99619d3f3e40d0a3d39534b8b7505bb0c1b14","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-15 16:44:32.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a27538392465432caa65a27a9f701189\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/92a2d8a86b9e4a33971be6b843c4cb4a : SUCCESS in 11m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/12867b733ce949c8884ea25532f369f2 : SUCCESS in 8m 57s\n- grenade https://zuul.opendev.org/t/openstack/build/295f29255e50456b99cabe8171fea635 : SUCCESS in 40m 40s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/2161b1c1ce624ed9a51f478721900dfe : SUCCESS in 1h 06m 55s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9764d6dbf5ea4d9fa4578b9bcecc9d24 : SUCCESS in 1h 05m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/47b3b93bfee54df4be904d692dcf0190 : SUCCESS in 1h 14m 36s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/003e868ca12741f990f8ae7b7dfb0453 : SUCCESS in 22m 44s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/174c93f32b984374ad3f1de2e9e437a9 : SUCCESS in 13m 59s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3d2a4a04bb554383869804f188d9071b : SUCCESS in 21m 29s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/dbb7b5a7e9014a60b10e96f64221a072 : SUCCESS in 7m 06s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/838df512263a4972acf3aa4bb01a5880 : SUCCESS in 27m 00s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c71626fe54234f9c84dcd5f19a80bbd4 : SUCCESS in 27m 05s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/524dddc9a49946438df9fea4a089c9e2 : SUCCESS in 26m 13s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/cf7097c0d9f94b86ae801eefe6f03e1e : SUCCESS in 21m 18s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/18902e3006614160b31c1e28db548f69 : SUCCESS in 15m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d787a2a4820941b698773f5766f0ec22 : SUCCESS in 16m 36s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/24cd9b23e2404b04a2f7d90470e63aac : SUCCESS in 10m 44s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7cd4c040da7e4b95948027ccae4f9777 : SUCCESS in 8m 51s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/25b495beafad4cff84bd15d1521b7411 : SUCCESS in 20m 06s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1a79a63a9f95470d8d62610bc1b94ace : SUCCESS in 9m 08s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/daf1f8e0bf084c1aaf0c903128410f37 : SUCCESS in 1h 05m 01s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c1fc417061074a00b555f90967c9c146 : SUCCESS in 33m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/70c02d7c7daa4c1e9148f40cdbb53ff6 : SUCCESS in 32m 49s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b2f691122d874d429535a0222ad558b2 : SUCCESS in 30m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3ee6c661f5c240128684bda81d31a173 : SUCCESS in 4m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fa4a628ee2cf454fa2daf2e19fe977ba : SUCCESS in 16m 03s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ddcd3a677c9645ef93af20fc4c02835f : SUCCESS in 1h 02m 03s","accounts_in_message":[],"_revision_number":1},{"id":"15774636623a6ea7fb9724bd53022c86435c9853","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-16 13:52:50.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"f1528ce0876714fe97b64c52720e4f48ded5ffe2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-16 16:01:26.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/1236f8cc4fab4d02b51ea4bc1834a956\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0dd75a47bd3e46ca82ac72e83dd790b5 : SUCCESS in 10m 05s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/79c9ac32a47247058a6bc9944c71c823 : SUCCESS in 9m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/5b1b8dd111b54774b48600ddbc8be4de : SUCCESS in 1h 10m 28s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/abad3187451a4c63b74363ea7b9bc211 : SUCCESS in 1h 02m 41s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d82e74f8220e48338230c2487eac19a4 : SUCCESS in 57m 48s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/1acd3d866b954f77a91a88813bd9fcee : POST_FAILURE in 16m 05s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/09d665fdaa414b1d9e3093ef41d603ec : SUCCESS in 21m 54s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b5143fbf7abf48b09ace296984fbbfb0 : SUCCESS in 18m 50s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/10bef383ebf943ee9a71d671b65045f7 : SUCCESS in 19m 41s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/48bb89510de14f8ba724f4371f7b633c : SUCCESS in 14m 28s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ffd395e1790a4db0a1428c92e9547d35 : SUCCESS in 18m 02s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/fc3246a1a0244c76ad19d54b974f1e1f : SUCCESS in 23m 03s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/693cd7f48d5e46a292fc09787190a4fd : SUCCESS in 33m 08s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/6928809815144767bfbedb9f253d1166 : SUCCESS in 22m 05s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9d99213de55d42049e727b2ea5abd888 : SUCCESS in 10m 01s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/149db2a156df4c30ab6031a723f88952 : SUCCESS in 17m 50s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/dd14768f52ff4666998ed4a1b1e47463 : SUCCESS in 14m 30s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/d631a1fecf1b4a0fabb71a213b0c7b9a : SUCCESS in 6m 42s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a515d0a6d9214085b2c3a0807144f742 : SUCCESS in 23m 19s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0b70734bee644ef2b8e922e873bab8d3 : SUCCESS in 11m 34s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6e39ba5966d14ee2b0504ae3b6497aa7 : SUCCESS in 1h 02m 28s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1a352aaacde34b3d969db95e8386e826 : SUCCESS in 54m 19s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e348406e86264d56964434ee9d1ab58a : SUCCESS in 59m 07s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f4a41f7a7ea64bbeb3563feee673567b : SUCCESS in 34m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c8383bb64d5d401fa43d8cdc005f7532 : SUCCESS in 4m 45s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e12eae6725434b1182ee2289c3e4bae8 : SUCCESS in 18m 45s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7fa5788693a947909b2005b2b74f91af : SUCCESS in 49m 11s","accounts_in_message":[],"_revision_number":2},{"id":"fc4ffdc7e5084ec075ef4cc6391ca6cdad7590ee","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-16 16:04:54.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"064c44de9f379e89ce323858595e166933ed0710","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-16 17:20:35.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c39c4b3a73de4acda0bfce227d5b85ba\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/454c9d4935b8434fa6618825dcfbca30 : SUCCESS in 6m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/983ff7131b9b4f2ab52a985e330d3ba6 : SUCCESS in 9m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/1f570303e8b142f9ae2b3122dae7e560 : SUCCESS in 1h 07m 19s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/9d36b5a00d2c4be5bf6d2f9906fae123 : SUCCESS in 1h 04m 03s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d51ddad89cc247e2be601c27aeabce8b : SUCCESS in 59m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3838baaa18ed4047a5c5b4563a5e08a0 : SUCCESS in 1h 08m 40s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b7eb323847b540a8a65565a2bf30d91a : SUCCESS in 21m 41s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/42acd7c372644ba8b47a7b9d7f590a8d : SUCCESS in 20m 55s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5a39a1479bb24f8daa1fde7678153e1d : SUCCESS in 23m 21s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/f7c4e888adc742ab92b840c38e5c9289 : SUCCESS in 10m 15s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/30269339682b4336b448519efcc805f2 : SUCCESS in 12m 14s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/736c8e40b1784462aa46c4fb62ef82f5 : SUCCESS in 25m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/cf70ea29f9ba48638459b1e29522062a : SUCCESS in 33m 30s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/b73b424621cf43d08e0b5cfed6ad98d8 : SUCCESS in 21m 14s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/34a6e5f7868c415c9eae55214a223a70 : SUCCESS in 15m 57s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/250fb197c24c42a2b16fb9efbd2e5c85 : SUCCESS in 15m 48s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fb80373f95d04a70b2056050fb56ec71 : SUCCESS in 16m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/18fa296446bf4edabbe0851ce5e26e45 : SUCCESS in 7m 51s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/174d48f471f24cc29f8773213a5f7dc0 : SUCCESS in 19m 15s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a16ecd78683d4192acffe5bc70f5aa2c : SUCCESS in 9m 19s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/cea32d5b552148c682191e64c6ddafbe : SUCCESS in 1h 02m 34s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7f17587fcc0547f98824914b7cdd852c : SUCCESS in 25m 10s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/07bb2c291170427fa6c56441acbdfa1c : SUCCESS in 55m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e70ff67f5e234311850c28a9161a5697 : SUCCESS in 29m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/992eea40b927495aa1b95d835e015e24 : SUCCESS in 3m 59s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8b46d66a907c4cb7b4effa98827b224e : SUCCESS in 14m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/22788917d35f4b87950bba55717b0796 : SUCCESS in 57m 22s","accounts_in_message":[],"_revision_number":2},{"id":"404baf96dd897b06ca40d41f3758393038e1f711","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 13:10:35.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7e52eb305ae54f57944507f0769db404\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/2b8faf14baef466094d53acbb4776ad3 : SUCCESS in 34m 42s","accounts_in_message":[],"_revision_number":2},{"id":"22b980dcdf1087ec4eee9727354fceb4dd44cb60","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-06-18 00:05:03.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"05e9c715f498b4bb646968370ea76c2507f79eed","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-06-29 14:58:59.000000000","message":"Patch Set 2:\n\n(7 comments)","accounts_in_message":[],"_revision_number":2},{"id":"f0f35b6437b03224f68d87d8e325ab11c660810b","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-04 10:53:37.000000000","message":"Patch Set 2:\n\n(9 comments)","accounts_in_message":[],"_revision_number":2},{"id":"e3d7c3a20a73a134379eebdd6a8f3a1bacacb176","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-04 11:08:41.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"8357e7ece4405c1051c49c388a20b38cda2da9cc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-04 11:38:27.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/80ad59c7044040cfad05fa40a87a7542\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/b9edbfba0f6a4dc79cf19e15e7ffd43c : SUCCESS in 28m 07s","accounts_in_message":[],"_revision_number":3},{"id":"e30e3c5ecffce00f84c148a50ed0346836e35d48","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-04 12:18:56.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/70b381e092ef4b3aa4fc5fd9adf3be10\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1e7a721ae100470fa6c003e8ceeadfaa : SUCCESS in 10m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/521df5029c894401bdbec4785df7733d : SUCCESS in 8m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/aa0efa16122a4010ba4d94b878b2041b : SUCCESS in 52m 23s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/666bc4f0e8e94526804cff69dc47ff0b : SUCCESS in 28m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/47307da6d1e44abc86c0c9e159c5e646 : SUCCESS in 50m 11s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d4f9eacc9d3f43d88747d9260fa46865 : SUCCESS in 1h 03m 01s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a5f1fa05b6484f4ba62fad1c7adcc393 : SUCCESS in 16m 31s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f8f1e4cbeaf246269c9e96657530bfe5 : SUCCESS in 20m 20s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c88f2800570e43e6a254d9ffef092b35 : SUCCESS in 22m 07s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/769215df6e6a416bbfc9762defcfaa3c : SUCCESS in 6m 08s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f4387bf1d22146b0a189597828b1c1e4 : SUCCESS in 19m 10s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/a7aae6315a14412aa9cb625b3da57fd3 : SUCCESS in 11m 34s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6f294cfd46914bbfab8a67ddd688ca48 : SUCCESS in 12m 36s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/d0c99b270b014508b9c1d5974a404ba0 : SUCCESS in 11m 37s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/218ca7e2f9ef4c3487d9a4f890b80179 : SUCCESS in 10m 22s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/60e954bbb2a544c586d75573fd767f4d : SUCCESS in 17m 33s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/70a5e803c4b94ef1ae5082f967ef27a1 : SUCCESS in 15m 06s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/db9102f0264b415b8c7eea0a1a401a5a : SUCCESS in 17m 16s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a57c917fae6f4aa8bb976df637c2b332 : SUCCESS in 5m 57s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/586ae0200a6b4a33bb2e9d5ee739bc76 : FAILURE in 7m 43s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/fb3b806ae1104f1298887b330bbcce3c : SUCCESS in 8m 22s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/122d2b3ea44d41e2a4847db83df3ffa9 : SUCCESS in 57m 51s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a9e8284473f84eeabca7ccc5284b139f : SUCCESS in 26m 44s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ba475403d0a1460f9ec50ae1a1cc40e7 : SUCCESS in 32m 49s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a2e8fcf597b347189a3c08b2d6113b86 : SUCCESS in 22m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/aa3e3748407f41648d7aace87a22b3e8 : SUCCESS in 3m 07s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/049ca484160a4e6cb7c77d3aae8cf01b : SUCCESS in 19m 26s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/97715478ad5b498eaf0555ded4b017bf : SUCCESS in 54m 06s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":3},{"id":"28f9fd4a3c8707c2ba7f8837951057790f93b989","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-08-07 21:08:27.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"6d0bb8e24350c13f2b6931bf751d4add605a15eb","revisions":{"70a5bf7e702b2b71d1ca4682f38adf030946b622":{"kind":"REWORK","_number":1,"created":"2026-06-15 15:27:46.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/96/993396/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/96/993396/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/96/993396/1"}}},"commit":{"parents":[{"commit":"47dbcf97230f6b1f8c7f3de9e7d28c940102a596","subject":"Fix: drop the page cache for the bytes a ranged GET read, not the file head","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/47dbcf97230f6b1f8c7f3de9e7d28c940102a596"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-15 15:26:35.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-15 15:26:35.000000000","tz":120},"subject":"Offload reads in the object server","message":"Offload reads in the object server\n\nAn object-server worker serves all its concurrent requests on one\neventlet hub. A GET read() that misses the page cache blocks the hub,\nstalling every other request on the worker - even cache hits. Using\ncooperative_period does not help: a yield cannot wake a thread stuck in\nread().\n\nA new opt-in read_offload \u003d true runs each read+md5 burst on a\nthread-pool worker; the requesting greenlet green-blocks on the result\nwhile the hub keeps serving others. os.pread() and hashlib.update() both\nrelease the GIL, so the disk wait and the etag hashing run off the hub\n(a serial hub-side md5 would otherwise become the next bottleneck under\nconcurrency).\n\nOnly reads of at least read_offload_min_size (default one burst) are\noffloaded; smaller reads, and small ranges of big objects, stay on the\ndirect path, where a single sub-burst handoff would only add cost.\n\nUnlike the old threads_per_disk (which offloaded every 64 KiB read),\neach offload is a 1 MiB burst, so the handoff stays cheap even on a\ncache hit. A per-device cap limits how many pool threads one slow disk\ncan take from the process-global pool.\n\nDefaults to off (behaviour unchanged).\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I377cad02c76942d654cfc8f32606b5f4a25b77ca\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/70a5bf7e702b2b71d1ca4682f38adf030946b622"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/70a5bf7e702b2b71d1ca4682f38adf030946b622"}]},"branch":"refs/heads/master"},"8096eb6994f1a2c467ed11c944b84b182595c06a":{"kind":"REWORK","_number":2,"created":"2026-06-16 13:52:50.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/96/993396/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/96/993396/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/96/993396/2"}}},"commit":{"parents":[{"commit":"bab1688e2c91cb9866c714ee77bb8c45f6885e7b","subject":"obj/diskfile: self-document _drop_cache offset for ranged GET reads","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bab1688e2c91cb9866c714ee77bb8c45f6885e7b"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-15 15:26:35.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-16 13:24:17.000000000","tz":120},"subject":"Offload reads in the object server","message":"Offload reads in the object server\n\nAn object-server worker serves all its concurrent requests on one\neventlet hub. A GET read() that misses the page cache blocks the hub,\nstalling every other request on the worker - even cache hits. Using\ncooperative_period does not help: a yield cannot wake a thread stuck in\nread().\n\nA new opt-in read_offload \u003d true runs each read+md5 burst on a\nthread-pool worker; the requesting greenlet green-blocks on the result\nwhile the hub keeps serving others. os.pread() and hashlib.update() both\nrelease the GIL, so the disk wait and the etag hashing run off the hub\n(a serial hub-side md5 would otherwise become the next bottleneck under\nconcurrency).\n\nOnly reads of at least read_offload_min_size (default one burst) are\noffloaded; smaller reads, and small ranges of big objects, stay on the\ndirect path, where a single sub-burst handoff would only add cost.\n\nUnlike the old threads_per_disk (which offloaded every 64 KiB read),\neach offload is a 1 MiB burst, so the handoff stays cheap even on a\ncache hit. A per-device cap limits how many pool threads one slow disk\ncan take from the process-global pool.\n\nDefaults to off (behaviour unchanged).\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I377cad02c76942d654cfc8f32606b5f4a25b77ca\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8096eb6994f1a2c467ed11c944b84b182595c06a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8096eb6994f1a2c467ed11c944b84b182595c06a"}]},"branch":"refs/heads/master"},"6d0bb8e24350c13f2b6931bf751d4add605a15eb":{"kind":"REWORK","_number":3,"created":"2026-08-04 11:08:41.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/96/993396/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/96/993396/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/96/993396/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/96/993396/3"}}},"commit":{"parents":[{"commit":"bab1688e2c91cb9866c714ee77bb8c45f6885e7b","subject":"obj/diskfile: self-document _drop_cache offset for ranged GET reads","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bab1688e2c91cb9866c714ee77bb8c45f6885e7b"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-04 11:03:14.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-04 11:03:14.000000000","tz":120},"subject":"Offload reads in the object server","message":"Offload reads in the object server\n\nAn object-server worker serves all its concurrent requests on one\neventlet hub, so a GET read() that misses the page cache stalls every\nother request on that worker - including cache hits. cooperative_period\ndoes not help: a yield cannot wake a greenlet whose thread is stuck in\nread().\n\nWith read_offload \u003d true, each read+md5 burst runs on an eventlet\nthread-pool worker; the requesting greenlet green-blocks on the result\nwhile the hub keeps serving others. os.pread() and hashlib.update() both\nrelease the GIL, so the disk wait and the etag hashing both leave the\nhub. Hashing has to move too, or a serial hub-side md5 becomes the next\nbottleneck.\n\nEach offload is one read_offload_burst_size burst, 1 MiB by default. The\nold threads_per_disk handed off every 64 KiB read, which cost more than\nit saved on a cache hit.\n\nread_offload_min_size (default one burst) keeps smaller reads on the\nhub, where a single sub-burst handoff would not pay off. It is measured\non what the GET transfers, so a small range of a big object counts as\nsmall. Tuning it trades one end of the latency distribution for the\nother: lower offloads shorter GETs and costs average latency, higher\nleaves more reads on the hub and costs tail latency. It cannot gate on\ncache residency - unknowable before reading - so a large page-cache hot\nobject is offloaded too. This reduces the odds of a slow read() blocking\nother GETs; it does not eliminate them.\n\nThe thread pool is process-global and shared with the fsync offload, so\nread_offload_max_inflight_per_device bounds what one device can take\nfrom it and keeps a sick disk from starving the healthy ones. With\nservers_per_port each disk usually gets its own process and pool, so the\ncap is largely redundant there; what matters instead is\neventlet_tpool_num_threads, whose auto default of 1 would serialize\nevery offloaded read behind fsync. The server now warns at startup when\nthe pool is smaller than the per-device cap.\n\n_inner_iter() is split into a shared _iter_bursts() plus _direct_bursts()\nand _offload_bursts(), and EC per-chunk fragment validation is split out\nof _update_checks() so it keeps running on the hub, where it can\nquarantine. The direct path is unchanged.\n\nDefaults to off. Whole-object GETs served by splice never reach this\npath.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I377cad02c76942d654cfc8f32606b5f4a25b77ca\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6d0bb8e24350c13f2b6931bf751d4add605a15eb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6d0bb8e24350c13f2b6931bf751d4add605a15eb"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"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":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"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":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"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":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
