)]}'
{"id":"openstack%2Foslo.messaging~1007622","triplet_id":"openstack%2Foslo.messaging~master~Ifcff5a1f7130a91300ee7198d19d55500047066b","project":"openstack/oslo.messaging","branch":"master","topic":"bp/oslo-http-driver-v3","hashtags":[],"change_id":"Ifcff5a1f7130a91300ee7198d19d55500047066b","subject":"HTTP-RPC driver: server side and entry point","status":"NEW","created":"2026-09-27 09:26:09.000000000","updated":"2026-10-14 00:29:47.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":false,"meta_rev_id":"bdd07ea5894b7fcbb03b3add34c7ba7b6fc5ace0","_number":1007622,"virtual_id_number":1007622,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-10-14 00:29:47.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},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2026-09-27 10:45: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"}],"messages":[{"id":"566cd884665ef15fe481c808ba9b96756ec04f5a","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-27 09:26:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"168706796cccb1aee10c85ede5d88df847fd1f27","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-27 10:45:32.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/9fdbd8c3f357443fabcda7f3412286d8\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/d58a9e4bb95a4ec1a2303e15d8e52304 : SUCCESS in 3m 03s\n- requirements-check https://zuul.opendev.org/t/openstack/build/9e4b76b10af8426c8e6322c585550af4 : SUCCESS in 2m 38s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8cd54e48710d4dbe9f6f269026ca9c8c : FAILURE in 11m 22s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3a72cc33d73d4ef492ca764f3fdd5422 : SUCCESS in 4m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/82c26b504f784a939d691cc9c96d39c1 : SUCCESS in 3m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2e74d20e4ac04549b4039415b4f66a58 : SUCCESS in 4m 57s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b7181d6f834b4a2e944167de1e69c194 : FAILURE in 6m 02s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/497835de446d4e4b868d0a97266aba54 : FAILURE in 8m 11s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8b479d33250a4e3bb7f5c40ca387bc24 : SUCCESS in 4m 51s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a00f589526f04341aeee48d1fcca2b95 : SUCCESS in 4m 43s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/9d0f0be87f1245cdb70daaafe5ac5877 : SUCCESS in 4m 24s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/8d9a437be48d44ec81c74859138598ef : FAILURE in 8m 09s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/09b624740d2b45e89ea76923a29867ac : FAILURE in 24m 16s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/2bd4715c93504ca0a5b2b83ce749b8d5 : FAILURE in 24m 29s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/de5bb7fdb7fc4216b512d90be4d018fb : SUCCESS in 1h 04m 17s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/94fda1c8d6324d60b095e921216a1b31 : SUCCESS in 1h 10m 57s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"bc0bb69c81602a4b2ce856045e9ffd54a4e45ec5","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-27 15:59:55.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"b7251bd96d67e5863c8d26488d5acbd9766d00f5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-27 17:44:46.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/c6763e3d5c794a4bb4a4cbd6a792629f\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/79e095eae9a54ab4912d5c088f745a56 : SUCCESS in 4m 16s\n- requirements-check https://zuul.opendev.org/t/openstack/build/7679e3002f874f7a81a42a9befb8a005 : SUCCESS in 1m 46s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/aaa3ac0fce5f44a3b8b5b26bd92a4259 : SUCCESS in 1h 00m 38s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/40b0216bc7ed4666b10c4e72a7b8f13a : SUCCESS in 3m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/08e8956c320e4c65be1b8de150d03a52 : SUCCESS in 3m 50s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/5514f87317af40df847c3171c0daf135 : SUCCESS in 3m 13s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3f87461270f240f8b5cd5c2158cc3a6d : SUCCESS in 6m 46s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/086275304687441ba70edc320ab95481 : FAILURE in 5m 44s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/12eb26c09b1840e1a6dc9393f9538cc9 : SUCCESS in 4m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7f5069a236254f77a81869e58a97893d : SUCCESS in 2m 59s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/bbc264706dc343f48996c4fcdd512f3e : SUCCESS in 5m 07s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/058ab65fbc4a49439747225ebd845a60 : FAILURE in 3m 29s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/6ff294a3fdb746f9983c31863272fd6e : SUCCESS in 1h 35m 53s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/b8cdf845671f475dae1cef72d6a3ee54 : SUCCESS in 1h 13m 33s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/a7e3f8a3cb4245a8bb0914a9be61c866 : SUCCESS in 1h 02m 01s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/9ad120e4ce4b46b2b588fb38a640a22d : SUCCESS in 1h 17m 11s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"3cb4ecc00d9026cc9c25c58a6f1d8755c1f335bc","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-27 19:26:10.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"fad28783b8376c3c3bf8c857af925cb224f79364","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-27 21:04:18.000000000","message":"Patch Set 3: 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/397ac400539c463aaf9697686eecdb3c\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/08432ff9a65b4ff2a28ff803df1391e1 : SUCCESS in 2m 45s\n- requirements-check https://zuul.opendev.org/t/openstack/build/1b4cd4b80caa4cdfbf8c68d6d0233906 : SUCCESS in 3m 12s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/29709ae844f04e6e827a71c9aafa7871 : SUCCESS in 1h 09m 29s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0e81cbba79894eaa86dc6855a28e019d : SUCCESS in 6m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/93feb92897bd47a391e65f640368ff75 : SUCCESS in 6m 10s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/eda9d34e92bf4aae862f0b26092338d0 : SUCCESS in 4m 33s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0ce9405d2d064306a5765de0366566f5 : SUCCESS in 7m 18s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/61a802b68b744813aeaecc872f0fe826 : FAILURE in 9m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/71b946f287fc4a35ae3629e854394f93 : SUCCESS in 5m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/29e47358f2d14dffb1092d514ad75dbf : SUCCESS in 2m 22s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/24e398a4a1394a88aba4ea398c9d9711 : SUCCESS in 4m 43s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/52ee3c7436bd4d4d90076fe5adcc67e8 : FAILURE in 6m 08s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/7ebdc3bd4ac947b28dd531b0780164aa : SUCCESS in 1h 07m 39s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/16fab3364a96419689133f8dba18a0f7 : SUCCESS in 1h 33m 17s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/e2092b0a8d4a41869db8a39b76ad6047 : SUCCESS in 59m 35s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/7be08948bc714c16a3f9df8b904d9543 : SUCCESS in 38m 11s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"ef579364677638d2c20b2411471293a73cb363eb","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-27 23:32:50.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"3fa1f1532fdcac61f2a9ad7553b32f1fcf0ff5b7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 01:06:28.000000000","message":"Patch Set 4: 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/5865673b32a4411585b5332ea93ba3eb\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/1c410fa3591b460abaf2b881a8357a69 : SUCCESS in 2m 32s\n- requirements-check https://zuul.opendev.org/t/openstack/build/399c98771cb4495da65d4188a0abb970 : SUCCESS in 5m 43s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/680e824796ba46d79bdfafd04062a1d6 : SUCCESS in 1h 21m 35s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3a7b7eb85b7d4480a2b21a4b1eb88c1e : SUCCESS in 4m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c265ea4ff95f4e2690da5a5d96793001 : SUCCESS in 2m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1f6f13e811c742c0a99e5e9e026177ea : SUCCESS in 4m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/60c46a17ccda408eb6beac6b5181aed6 : SUCCESS in 6m 42s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/03fff139e8b14065bc6ba1d7030f7f7a : FAILURE in 3m 39s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/73ccb5eae70f49ca801442599f507630 : SUCCESS in 2m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ae8ff0a6fad946a78b15b22e0bafc7c2 : SUCCESS in 3m 24s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/51d2e2354bb745fcb0cb9b261519e0e9 : SUCCESS in 4m 32s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/20f6b56d7ddc409799a496a9b8e01d01 : FAILURE in 4m 00s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/22cf295d411c48f699c497ed78e6eefb : SUCCESS in 1h 24m 40s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/ef1946401d0047cb9940cf3d2b6fd6de : SUCCESS in 1h 16m 21s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/78aef90037f3405b8faf6e2e9a8462eb : SUCCESS in 27m 49s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/91261ae0f59740bbb0e0007120623fc0 : SUCCESS in 1h 12m 22s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"1aebd6c5dd6f0cc064b620e26a93adbfb02f3abb","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-28 02:18:56.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"163a5cef839662ab250848f5e698e09441def754","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 04:46:19.000000000","message":"Patch Set 5: 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/dd0bf0c3fdc447559454cffacb7354c4\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/fb329339e3224af7bfd6728cf269863a : SUCCESS in 3m 44s\n- requirements-check https://zuul.opendev.org/t/openstack/build/3b308d64934044418b80b156d1985bbe : SUCCESS in 2m 10s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/1df11426608a4dd8b8e7a79bb7fa6143 : SUCCESS in 1h 33m 08s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0cbce1d21c3c46878b8387ae2e28cb9b : SUCCESS in 5m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e0f8d88ea6fa495dab7c620d6b0ba1d0 : SUCCESS in 3m 24s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/fdd1e46228c44cc9acb1fa7cc2089bbc : SUCCESS in 4m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/43f7be9b892c45878d3f694cc3541da9 : SUCCESS in 6m 50s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/2e782f8f3ec346d68d1409c02022ed82 : FAILURE in 6m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c7df9ae81e914761a7f476098d520bf1 : SUCCESS in 5m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3392e15af3c24b3e96f92b4eb1ecb65c : SUCCESS in 3m 33s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/d173f5bd61a64184a3f4cf35c82c54f7 : SUCCESS in 5m 48s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/cabef0ed4aae4a1cb2aafe131755332e : FAILURE in 4m 37s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/1a01db3719474bca99f543242557f092 : SUCCESS in 1h 15m 52s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/473fafbb83e340029d169c1df30a76f9 : SUCCESS in 1h 08m 42s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/68239467c101453885be757d1f49296a : SUCCESS in 39m 34s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/d967779321eb47ac86749f940469a715 : SUCCESS in 1h 17m 13s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"4e922ab6163047ee9000a6cfb06fc8ca65d75617","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-29 16:36:44.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"8f111d1e86b5c4e3957e56497f3facc577220380","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 19:06:58.000000000","message":"Patch Set 6: 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/de943780b492439599f851a4049f9fb2\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/2764085af2c847ff9163ca268e8f83c1 : SUCCESS in 6m 58s\n- requirements-check https://zuul.opendev.org/t/openstack/build/f8833705a2a143e1ab7511e689ea4530 : SUCCESS in 2m 43s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b2bd6a74a44b48f59f6a5b7b598fc9a5 : SUCCESS in 1h 08m 25s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/faeb895ee2d642398afc96e1c19259e9 : SUCCESS in 10m 04s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2ad26b2d0ebb4cbf8333e9e7fca93c84 : SUCCESS in 3m 21s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6314dc86019c4294aadfe3f8f9611096 : SUCCESS in 4m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5805b7774c264657990123758e34426d : SUCCESS in 10m 11s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/a9fe6a178f2c4f6b9553881454016a49 : FAILURE in 6m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/124006151db14328b4b9a107ccc1b642 : SUCCESS in 4m 19s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/428f12e6e0ea44eda89511d17eaee897 : SUCCESS in 7m 56s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/fb1b7cfa406c43e2b4ba1e23f64217e9 : SUCCESS in 5m 20s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/9e6b21c1ce8148daada973b8e0018354 : FAILURE in 14m 56s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/1ae6c1aa3fe449d493b4231f8932cf68 : SUCCESS in 1h 34m 35s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/a700444745ff40219e9db100c845fbfb : SUCCESS in 2h 13m 09s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/f59fab531e834b65824ad2eaa24a859d : SUCCESS in 33m 54s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/aa079bb701a8480380d940d8d6ecbe7c : SUCCESS in 1h 08m 01s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"8f59b8945c380b4f187cdaf87ce7c935690b0a73","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-29 21:34:17.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"15b442a26907fa9431720b2c564eb20fecdc5696","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 23:23:34.000000000","message":"Patch Set 7: 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/1f0b0ec356804fb08fcf180f373452c4\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/9cb62472c5c2440a96287bda3ced8df9 : SUCCESS in 4m 22s\n- requirements-check https://zuul.opendev.org/t/openstack/build/b47612beaaf34c55bf45a5b3dc899614 : SUCCESS in 2m 44s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8148553c3e8548e497ec0bb79ef30555 : SUCCESS in 1h 03m 54s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ec9ed48d36204285a24eb336fc12ab02 : SUCCESS in 4m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/931fa8cc401a44cd979cbc09661f73eb : SUCCESS in 3m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/15bc7e1a1e524a15a210e0af58b487b9 : SUCCESS in 5m 48s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a56266ff37fd42d88b215b918b72360e : SUCCESS in 6m 55s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/45b481373df646dc821e67bb3c34bb8c : FAILURE in 6m 04s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1b4315b487cd40fe968b5892938bc8e1 : SUCCESS in 3m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9ed2d6142bae4028ba288cb1d678590f : SUCCESS in 4m 21s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/464e9eb59e3d4ba794df06db61e45cc7 : SUCCESS in 6m 17s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/7dc4d4cef3f64b1d887a5667dd69d353 : FAILURE in 6m 07s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/4c408b973407415ea0d17d84fe6a94c9 : SUCCESS in 1h 40m 35s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/a96ea2594de64b17b2e87130d8f98e20 : SUCCESS in 1h 38m 06s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/28f12e09d219467889b80602e1d0cf84 : SUCCESS in 58m 52s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/c3e291bb9b9a4e76a8476c2779cbac09 : SUCCESS in 56m 37s (non-voting)","accounts_in_message":[],"_revision_number":7},{"id":"dd77a2758d0fe6c86be1585746c02ee41de20626","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-30 06:47:24.000000000","message":"Uploaded patch set 8: Patch Set 7 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"a366e7ece8ce321aea04a0db605efb2773cda33e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-30 08:22:38.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/01a08e06627243e9a8a67a2a34a6fa08\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/6ed913676a0f44688738f79e65cd0116 : SUCCESS in 2m 10s\n- requirements-check https://zuul.opendev.org/t/openstack/build/4736f12d65a64486a0b0e03ed31910f7 : SUCCESS in 2m 33s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/dd8259380e9248a69c0968aa6f9b63e3 : SUCCESS in 1h 15m 53s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0b585e08270847268f4ed0b86d497e90 : SUCCESS in 7m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7c735609c359437d97cafa4f6994116f : SUCCESS in 4m 30s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f101d72e71d84ba3bbdfde8412a932f8 : SUCCESS in 6m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/01fed084d99843fe88702c03c136c27c : SUCCESS in 5m 22s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/f7b21e07355842348a9fcd40be16f7c7 : FAILURE in 5m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bb745893c8d14c01a5c5e67d39e01512 : SUCCESS in 4m 41s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3ddf742dc7324f899120a641d099946b : SUCCESS in 4m 52s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/98f462cc34a14d02b4d4ac259775f078 : SUCCESS in 7m 35s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/81c8448416994bc1bd237006adc66c49 : FAILURE in 10m 42s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/8d1bb9e688db4732a2637cef2e01afa9 : SUCCESS in 1h 25m 13s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/cf05ecc6eb644ff78474ca12dc6aa088 : SUCCESS in 1h 30m 15s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/8eedb4b7b6c4475a8ddb7a758c0d76e0 : SUCCESS in 50m 50s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/8f92542b1d8a45a7a659663e1c54a026 : SUCCESS in 45m 57s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"64a1d0a0ac501fdc2601762023026b1a0738f7a9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-02 19:17:15.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":9},{"id":"4e50ad55298545bd08c2bc8cbf6796b6dc9a49bf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-02 19:17:36.000000000","message":"Patch Set 9: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging gerrit/openstack/tooz for 1007613,2","accounts_in_message":[],"_revision_number":9},{"id":"5bf9606613d12eb8c9669268be60767cb8d743d4","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-02 19:58:42.000000000","message":"Patch Set 9:\n\nrecheck","accounts_in_message":[],"_revision_number":9},{"id":"f235e92ef7b2e351873b175aa3fe45579c55b094","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-02 22:10:37.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/72857a53d2714ccabb5bbe0261396a3e\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/2aa61d75f25f49dd898e39c710a99c69 : SUCCESS in 2m 34s\n- requirements-check https://zuul.opendev.org/t/openstack/build/1e0d9099737d47a0867a19cf0870e19e : SUCCESS in 2m 12s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c2ada0241cb549f4a54cc30824850f58 : SUCCESS in 1h 31m 13s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f63ed02d77c743d9830dce43d6b21454 : SUCCESS in 4m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/237976b1d5334bd9b9ae71c65de0179d : SUCCESS in 3m 32s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/5568b9d7de6d43fb81d9a78fd51ca073 : SUCCESS in 4m 05s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f70747543f6a47c7a15a64887b51bcfd : SUCCESS in 5m 54s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/2f1d6d9e597441abb7a315bc6c0e3a17 : FAILURE in 8m 25s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0c97b44d163d498e895724c18aaba14c : SUCCESS in 3m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f9e5d5562b5846f5891be343ba6f7041 : SUCCESS in 4m 12s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/7e4b6550d0574c93ac1b3c913608720a : SUCCESS in 5m 01s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/0c6142de82bf463ab8faae0258e32eed : FAILURE in 5m 01s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/61bb5d413def451db71e839a44dad609 : SUCCESS in 1h 32m 54s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/6b320985d5aa4fa58038c47adf5e3cd3 : SUCCESS in 1h 46m 56s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/f4cb01408da04ae49bf607cc18908a71 : SUCCESS in 58m 12s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/f91611ab09054e08b9db7c582023d750 : SUCCESS in 1h 09m 54s (non-voting)","accounts_in_message":[],"_revision_number":9},{"id":"a99a408c2ca1b2dc2d411a46c1348adeba91319d","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-07 01:02:07.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":10},{"id":"dcf366c74d4f8d50a6fd102567a7146b433951a0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-07 02:46:27.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0b936f18a14343e1b07706df557b4f8d\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/ae113e1882d24e80a51cf503617f8408 : SUCCESS in 2m 52s\n- requirements-check https://zuul.opendev.org/t/openstack/build/97853a26bade4e99b7c2ba8f736ca6a4 : SUCCESS in 2m 15s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/5933ee099dc54f44946be9fb6b864f51 : SUCCESS in 1h 37m 45s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4b2ef9454c484a81b9f02ddb7257a333 : SUCCESS in 3m 54s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ea26e975b8ce4c87adc0724ab37fff94 : SUCCESS in 2m 38s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e27218c728014f1bb92f517b38f6cc95 : SUCCESS in 3m 39s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ded4f249dd284910b834a130d7bcf2a3 : SUCCESS in 6m 52s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/9dba2d4a0afd4a59a6e433413b995b60 : FAILURE in 5m 51s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/76a49622d6a64efc8e50f02bc3101403 : SUCCESS in 5m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6fa9c8168ca24f44aae6d76e4a335241 : SUCCESS in 2m 42s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/9cbb65809b0347b9a048a49a34fc7456 : SUCCESS in 6m 46s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/98b8ab4f92d94c9c9bd96404b104eddc : FAILURE in 5m 40s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/54d6ad9a33454dbd8caa1cedeb444890 : SUCCESS in 1h 37m 36s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/839db2cc311e4e30b37268e88592deea : SUCCESS in 1h 34m 49s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/ca7b77d8378f4ccc8693ffc73f14c482 : SUCCESS in 45m 47s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/c41191ffc9fa493abb6368735b3e23a9 : SUCCESS in 57m 01s (non-voting)","accounts_in_message":[],"_revision_number":10},{"id":"e3ad72af38ed1b5934865794bdefba90248aeb00","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-07 23:28:08.000000000","message":"Uploaded patch set 11.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":11},{"id":"e955241261159bfb6bad09fd631febb7a29eb562","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-08 01:05:14.000000000","message":"Patch Set 11: 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/248ed074f29b44a2a71cfbba7fe9c0ae\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/3e483345228949888f486fe66ee9b61a : SUCCESS in 2m 47s\n- requirements-check https://zuul.opendev.org/t/openstack/build/a3efd926f4a04c87b3fce20953029493 : SUCCESS in 2m 23s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/423804ce52a44924a99250aa63c602af : FAILURE in 44m 23s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6535beb997984989b264755522359880 : SUCCESS in 4m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c7f7b66d2163474f8e297ee70d97a8fe : SUCCESS in 3m 50s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/48c9e77eb9754b129a361b90cc846136 : SUCCESS in 4m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/793f3d78d28d49c0a9b5c8f63c215aeb : SUCCESS in 5m 51s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/e8b35234d3ce4cffaac3531bd467acfd : FAILURE in 3m 40s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/aa6d7c0bd0564890be5c4e900ca66302 : SUCCESS in 3m 54s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/858d6f400c934c6e9d9e57a2afdcd6af : SUCCESS in 4m 02s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/f23ae2b7a0f9419dbc4dad0199d4ceea : SUCCESS in 4m 59s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/3b99d4c04b204a7ea651fb983033859d : FAILURE in 4m 19s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/4ae1cd8b329144c7a3e0bf994119432b : SUCCESS in 1h 15m 03s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/85dcd77d07094bf493b45650500d9b5d : SUCCESS in 1h 22m 36s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/38f85bf7d2d34db7bd165561a0e66246 : SUCCESS in 32m 33s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/5e9860da08f74155b8badb5c192e9d5b : SUCCESS in 1h 19m 47s (non-voting)","accounts_in_message":[],"_revision_number":11},{"id":"69ac76f8bdd11f59df186365bacbbbec4be19087","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-10 17:48:16.000000000","message":"Uploaded patch set 12.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":12},{"id":"260268dd4f164a8046a2cf113aacf4f63b824c33","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-10 19:13:27.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/90874c5595e14289b4375325b5cadd8c\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/2cbea3a9e8ec43f7984fca3eec8c753a : SUCCESS in 2m 32s\n- requirements-check https://zuul.opendev.org/t/openstack/build/c3e1646c21de40688177682b483f055b : SUCCESS in 2m 17s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/05feed915a954419863f3d0824e9aef7 : SUCCESS in 1h 17m 13s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7b27e72b26b34efcb42f3c42f1dc53a3 : SUCCESS in 4m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8e7d6e1a3d054ddd88fdac8ec5f55248 : SUCCESS in 4m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/153d2fc5bb8541968ef16dc24937c47e : SUCCESS in 2m 54s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a15c1f2c57c54a38875ab92c49799f71 : SUCCESS in 6m 43s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/6411fc14132f4736a697df08786c0a47 : FAILURE in 6m 08s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9136624e0fa348a18be0968c3e5b0e91 : SUCCESS in 3m 50s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/078cc24087204addbd1fdb8a8ace6ffd : SUCCESS in 5m 03s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/ff6fe6ec37ed4a3d8d057e7bb71f4e44 : SUCCESS in 4m 45s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/ead1fbcfe652422682c80fe899fc6adc : FAILURE in 4m 04s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/d03754fee49b481886b8e569c750fbb0 : SUCCESS in 1h 07m 28s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/17c20649f37d43849cf2f7cfe9cb9e63 : SUCCESS in 1h 10m 52s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/93b58586b0064e088f4d3d0a8a27f2ae : SUCCESS in 1h 10m 07s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/0e99a49b1fc94f2ebfc66f650b828cd8 : SUCCESS in 33m 41s (non-voting)","accounts_in_message":[],"_revision_number":12},{"id":"628dcfa58aaf1e72096b9348f6640cdf765385cc","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-12 22:30:53.000000000","message":"Uploaded patch set 13.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":13},{"id":"57c0e8a4257046e762ee9587ff267c6a59c26639","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-13 00:37:09.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cbb6955188324dc984610fc2af0f8f35\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/08ab546651ef4e0ab35271efcc085b0f : SUCCESS in 2m 49s\n- requirements-check https://zuul.opendev.org/t/openstack/build/e08684ec905c47eaaf23af40da98c0fc : SUCCESS in 2m 29s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9542b96fb9514d8c99fad874defa9c8d : SUCCESS in 1h 40m 44s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f01516191caf4986a6b77cac6622145d : SUCCESS in 3m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2d5e3c42204f4cbbbc09afe649515c94 : SUCCESS in 2m 08s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d5e8143e01c44ddcaa773d716b2ef015 : SUCCESS in 6m 00s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f70e9bfe0b8e43d188de486132f4a8c6 : SUCCESS in 7m 15s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/c477c604a03147dbb4526dd457ef2ed1 : FAILURE in 6m 39s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6bfc0ad0a386443181a04131dadcede0 : SUCCESS in 6m 22s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f9915813d15f4857bb58abaa94e236de : SUCCESS in 4m 04s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/a694b45522cb4d31a5bc0beb3d6d0784 : SUCCESS in 6m 37s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/4ab89f2982404337bbff4185cc0e8d72 : FAILURE in 5m 48s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/5def6c5ffd9140a19931be017afff242 : SUCCESS in 1h 56m 26s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/9dd6faecdbae445ab58d38c51c9e39f8 : SUCCESS in 1h 40m 39s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/077e5621f94143ec8311da1c9b27819f : SUCCESS in 29m 12s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/334665ae28dc46e589d2a506f5f88384 : SUCCESS in 1h 11m 37s (non-voting)","accounts_in_message":[],"_revision_number":13},{"id":"2e28c853fc0f48da93ec77df2bd8c9ad8d08d334","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-13 06:52:52.000000000","message":"Uploaded patch set 14: Patch Set 13 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":14},{"id":"37d7f615dd463af1da38c42f60ab2cbaa2d3dfe6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-13 08:57:10.000000000","message":"Patch Set 14: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5be241867b884381a4dced23bd90e70a\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/71a006790b234f209e03f7e68355c790 : SUCCESS in 3m 15s\n- requirements-check https://zuul.opendev.org/t/openstack/build/80f067c5a5d041c7b9eababd7a7e1f23 : SUCCESS in 2m 23s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/d806e2c49a404326a28aa2b439e0a92b : SUCCESS in 1h 02m 07s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3d559cd5fc5a40ef970848ed92d4cdcc : SUCCESS in 5m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/de2c0cfb0663465791b095197387bd9d : SUCCESS in 3m 29s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/948e9f8fd0034275999368d6db492d5b : SUCCESS in 3m 06s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7949e55fbcb04f38b7ef776dfd7fe9ea : SUCCESS in 5m 06s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/bc999a0549db48d2a171c4ffd9d8be7e : FAILURE in 5m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/901cc8a4eaa44d4284a381d343fab695 : SUCCESS in 2m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/fb2b553499fa48a9805f804d93ea41d4 : SUCCESS in 3m 37s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/985988ea4bb349ae856f6ec096fff4a0 : SUCCESS in 6m 58s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/9246807ed0d64569b351238cdb315e7c : FAILURE in 9m 40s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/27b703a5358e44339f5e7593b44c4626 : SUCCESS in 1h 52m 27s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/0a6b3270168d4d3cabce07297fddc672 : SUCCESS in 1h 55m 27s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/e80cfa6370d34624a401c558ab265059 : SUCCESS in 1h 04m 40s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/a14a4b3783894bb89aca86a870eb919f : SUCCESS in 1h 00m 36s (non-voting)","accounts_in_message":[],"_revision_number":14},{"id":"b1c60a782c740457a95a02e78d95a80c80f13d40","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-13 21:28:31.000000000","message":"Uploaded patch set 15.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":15},{"id":"df2e0ea1be9b48671bef9d7586575533d8d1cc42","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-13 22:54:03.000000000","message":"Patch Set 15: 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/21c9f378b9d74809a437860cb15a1024\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/9344ea88f5fa4d878a08187793b69d0b : SUCCESS in 2m 39s\n- requirements-check https://zuul.opendev.org/t/openstack/build/5ab25f394c3249a1900779387fe94704 : SUCCESS in 2m 41s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/0aa10e40fd60486b8be78db7e5d7de14 : SUCCESS in 1h 06m 20s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ad7655aad5344165bda8548d92de19e1 : SUCCESS in 4m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ce5f753e970640649748bcea4e399668 : SUCCESS in 3m 38s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a895b8144cb041ff93bff30b2f66a3f7 : SUCCESS in 5m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3c18e0fb3e114dffa08f9b3304d8fb0b : SUCCESS in 7m 02s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/e11893b80151433db6e333ae754d23da : FAILURE in 6m 05s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/26b5ffbd02284bbca427ab6b3328c6e9 : SUCCESS in 4m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/07f471c48d0749a492a9d3bbd2cb5095 : SUCCESS in 3m 49s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/16cfaf7b2acb433ca3ee37dbec6e97a0 : SUCCESS in 5m 02s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/3c649b9bd72a4dc6bde10c8964835f25 : FAILURE in 4m 57s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/3b137f80451f49a897e63d72feedf4a1 : FAILURE in 1h 16m 32s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/41996141d7aa42f594a5ea3d436039be : SUCCESS in 1h 07m 45s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/ba78f7486cc746499f2bedcdc1f95256 : SUCCESS in 1h 05m 30s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/fe746732e75341bbbc23cf9b995596fb : SUCCESS in 1h 15m 19s (non-voting)","accounts_in_message":[],"_revision_number":15},{"id":"0607cde18694e6a227e2ed81a3e90dd267f9eb05","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-10-13 23:09:00.000000000","message":"Uploaded patch set 16.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":16},{"id":"bdd07ea5894b7fcbb03b3add34c7ba7b6fc5ace0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-14 00:29:47.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4b75e6801f264f638d19edc98d0d6e09\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/902b1b71e8194ec8b7d9ec8076b18490 : SUCCESS in 2m 53s\n- requirements-check https://zuul.opendev.org/t/openstack/build/e09a2c56058949b7800798181e035b40 : SUCCESS in 3m 30s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/eead113ffab746da902b7667cb7f3185 : SUCCESS in 42m 06s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d12e867aece747328a011c2e5f6a9f28 : SUCCESS in 4m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/acabe0181a9f471fadc150c274cdd1dd : SUCCESS in 3m 05s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c73972029bc3407cb021428f70baf96e : SUCCESS in 3m 32s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c8d5e8c9255a4389825b9c6739b8f5bb : SUCCESS in 4m 35s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/d881171162604c8d989ed293fe4e1448 : FAILURE in 5m 47s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0394199f23fa4be8934d883897fa6762 : SUCCESS in 3m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7d33c3b9cb8c4baca347467e77448340 : SUCCESS in 5m 24s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/af868960e00f48b4b3458de05b3f169a : SUCCESS in 4m 40s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/1f71b24bb229400891e96a8055a4ec03 : FAILURE in 5m 07s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/1fc8dd6929554576897675655a787378 : SUCCESS in 57m 05s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/4868ce5fe55b446c9c674b10ea062593 : SUCCESS in 1h 14m 24s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/9efca1c7e738408991cbacf2b5697bea : SUCCESS in 1h 00m 58s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/08eda524f5734ad3b260579eb98616fa : SUCCESS in 34m 13s (non-voting)","accounts_in_message":[],"_revision_number":16}],"current_revision_number":16,"current_revision":"45a90d741b905b8e3fce8b71e2330ddae0a179e5","revisions":{"95c3e99171c9c8d6b4e68e3f682551f07c9f49a5":{"kind":"REWORK","_number":1,"created":"2026-09-27 09:26:09.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/1"}}},"commit":{"parents":[{"commit":"c97d6cec2c49b799d38a33f331a4e23fcc032b13","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c97d6cec2c49b799d38a33f331a4e23fcc032b13"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 09:25:52.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Each RPC server admits\nat most max_concurrent_requests messages that it has not finished. It\nanswers more with a 503 that sends the client to another server, as it\ndoes while it stops, and a request for an unknown target gets a 404 of\nthe same kind. Each RPC server adds that many threads to the WSGI\nserver, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server withdraws its registration and refuses new\nrequests. Cleanup waits up to shutdown_grace_period for the callers of\nthe calls it ran to fetch their replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/95c3e99171c9c8d6b4e68e3f682551f07c9f49a5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/95c3e99171c9c8d6b4e68e3f682551f07c9f49a5"}]},"branch":"refs/heads/master"},"d5aa86d22467f5019a894504f56cafe578383168":{"kind":"REWORK","_number":2,"created":"2026-09-27 15:59:55.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/2"}}},"commit":{"parents":[{"commit":"a735934a446a1b918f17c4a50ef7511ca00859aa","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/a735934a446a1b918f17c4a50ef7511ca00859aa"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 15:53:03.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Each RPC server admits\nat most max_concurrent_requests messages that it has not finished. It\nanswers more with a 503 that sends the client to another server, as it\ndoes while it stops, and a request for an unknown target gets a 404 of\nthe same kind. Each RPC server adds that many threads to the WSGI\nserver, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server withdraws its registration and refuses new\nrequests. Cleanup waits up to shutdown_grace_period for the callers of\nthe calls it ran to fetch their replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d5aa86d22467f5019a894504f56cafe578383168"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d5aa86d22467f5019a894504f56cafe578383168"}]},"branch":"refs/heads/master"},"53537882870c324a2ce2c5dcde6dceb4f442cd7c":{"kind":"REWORK","_number":3,"created":"2026-09-27 19:26:10.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/3"}}},"commit":{"parents":[{"commit":"a735934a446a1b918f17c4a50ef7511ca00859aa","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/a735934a446a1b918f17c4a50ef7511ca00859aa"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 18:55:11.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Each RPC server admits\nat most max_concurrent_requests messages that it has not finished. It\nanswers more with a 503 that sends the client to another server, as it\ndoes while it stops, and a request for an unknown target gets a 404 of\nthe same kind. Each RPC server adds that many threads to the WSGI\nserver, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server withdraws its registration and refuses new\nrequests. Cleanup waits up to shutdown_grace_period for the callers of\nthe calls it ran to fetch their replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/53537882870c324a2ce2c5dcde6dceb4f442cd7c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/53537882870c324a2ce2c5dcde6dceb4f442cd7c"}]},"branch":"refs/heads/master"},"65c25b3bebefdb2e05bea148ca81c08d7d0ea9b8":{"kind":"REWORK","_number":4,"created":"2026-09-27 23:32:50.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/4"}}},"commit":{"parents":[{"commit":"6b959975c0d5f73659a0a4f76b052036f236d9b2","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/6b959975c0d5f73659a0a4f76b052036f236d9b2"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 22:51:35.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Each RPC server admits\nat most max_concurrent_requests messages that it has not finished. It\nanswers more with a 503 that sends the client to another server, as it\ndoes while it stops, and a request for an unknown target gets a 404 of\nthe same kind. Each RPC server adds that many threads to the WSGI\nserver, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server withdraws its registration and refuses new\nrequests. Cleanup waits up to shutdown_grace_period for the callers of\nthe calls it ran to fetch their replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/65c25b3bebefdb2e05bea148ca81c08d7d0ea9b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/65c25b3bebefdb2e05bea148ca81c08d7d0ea9b8"}]},"branch":"refs/heads/master"},"877e5034c89e44c61e2c3d8ba3970df546d53691":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-09-28 02:18:56.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/5"}}},"commit":{"parents":[{"commit":"95300365be19102069b01c67b97a5c7b366b5592","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/95300365be19102069b01c67b97a5c7b366b5592"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-28 02:14:32.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Each RPC server admits\nat most max_concurrent_requests messages that it has not finished. It\nanswers more with a 503 that sends the client to another server, as it\ndoes while it stops, and a request for an unknown target gets a 404 of\nthe same kind. Each RPC server adds that many threads to the WSGI\nserver, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server withdraws its registration and refuses new\nrequests. Cleanup waits up to shutdown_grace_period for the callers of\nthe calls it ran to fetch their replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/877e5034c89e44c61e2c3d8ba3970df546d53691"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/877e5034c89e44c61e2c3d8ba3970df546d53691"}]},"branch":"refs/heads/master"},"8de75f206b0c78ee932c97b4d54e76fc8a5ff4f1":{"kind":"REWORK","_number":6,"created":"2026-09-29 16:36:44.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/6"}}},"commit":{"parents":[{"commit":"be72c64ebb1552d77ecf81a259f5935f638b089e","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/be72c64ebb1552d77ecf81a259f5935f638b089e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-29 16:19:31.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. A request that\nrepeats the ID of a message the server has taken, as a client sends\nwhen a connection closes with no answer, gets that message\u0027s answer\nand needs no admission, and one that repeats a call whose reply went\nout gets a 410, so the call does not run again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server withdraws its registration and refuses new\nrequests. Cleanup waits up to shutdown_grace_period for the callers of\nthe calls it ran to fetch their replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8de75f206b0c78ee932c97b4d54e76fc8a5ff4f1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8de75f206b0c78ee932c97b4d54e76fc8a5ff4f1"}]},"branch":"refs/heads/master"},"ae2989146c2fd3bdc84bc996e734574c7b9bd609":{"kind":"REWORK","_number":7,"created":"2026-09-29 21:34:17.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/7"}}},"commit":{"parents":[{"commit":"4f2f87aed1b63d6b24cb08a9e2c4c98e322628fa","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/4f2f87aed1b63d6b24cb08a9e2c4c98e322628fa"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-29 20:32:36.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. A request that\nrepeats the ID of a message the server has taken, as a client sends\nwhen a connection closes with no answer, gets that message\u0027s answer\nand needs no admission, and one that repeats a call whose reply went\nout gets a 410, so the call does not run again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, before the\nexception goes on. Only a reply frees a message\u0027s admission in this\ndriver: without one, the caller waited for its timeout, and the RPC\nserver lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ae2989146c2fd3bdc84bc996e734574c7b9bd609"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ae2989146c2fd3bdc84bc996e734574c7b9bd609"}]},"branch":"refs/heads/master"},"6cf8a20d476ad092d257cc4107d071600a90bee0":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2026-09-30 06:47:24.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/8"}}},"commit":{"parents":[{"commit":"f2e0ec10769066a649739355198e810128086d20","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f2e0ec10769066a649739355198e810128086d20"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-30 05:08:09.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. A request that\nrepeats the ID of a message the server has taken, as a client sends\nwhen a connection closes with no answer, gets that message\u0027s answer\nand needs no admission, and one that repeats a call whose reply went\nout gets a 410, so the call does not run again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, before the\nexception goes on. Only a reply frees a message\u0027s admission in this\ndriver: without one, the caller waited for its timeout, and the RPC\nserver lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/6cf8a20d476ad092d257cc4107d071600a90bee0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/6cf8a20d476ad092d257cc4107d071600a90bee0"}]},"branch":"refs/heads/master"},"b79483ca90bcae0e260a6ae71a8914523a5870d8":{"kind":"REWORK","_number":9,"created":"2026-10-02 19:17:15.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/9"}}},"commit":{"parents":[{"commit":"8b867d9c8abb7b0d07c9588e6fc63429a943a54c","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8b867d9c8abb7b0d07c9588e6fc63429a943a54c"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-02 18:32:01.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer,\ngets that message\u0027s answer and needs no admission, and one that\nrepeats a call whose reply went out gets a 410, so the call does not\nrun again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b79483ca90bcae0e260a6ae71a8914523a5870d8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b79483ca90bcae0e260a6ae71a8914523a5870d8"}]},"branch":"refs/heads/master"},"0c496637d0df5bfd6428e14966f4b91fd5ed145f":{"kind":"REWORK","_number":10,"created":"2026-10-07 01:02:07.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/10"}}},"commit":{"parents":[{"commit":"418887dc3737ed721c1f232d2861141644efe0b0","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/418887dc3737ed721c1f232d2861141644efe0b0"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-07 00:32:32.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer,\ngets that message\u0027s answer and needs no admission, and one that\nrepeats a call whose reply went out gets a 410, so the call does not\nrun again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/0c496637d0df5bfd6428e14966f4b91fd5ed145f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/0c496637d0df5bfd6428e14966f4b91fd5ed145f"}]},"branch":"refs/heads/master"},"5e0cf57eb193e9421bad1b66a17dc0677c42c6b8":{"kind":"REWORK","_number":11,"created":"2026-10-07 23:28:08.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/11"}}},"commit":{"parents":[{"commit":"418887dc3737ed721c1f232d2861141644efe0b0","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/418887dc3737ed721c1f232d2861141644efe0b0"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-07 20:23:19.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer,\ngets that message\u0027s answer and needs no admission, and one that\nrepeats a call whose reply went out gets a 410, so the call does not\nrun again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies, and for clients to read discovery again, which takes up\nto cache_max_age. Until then, a client that still finds the server gets\na refusal and tries another, rather than lose its message as the process\nexits.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/5e0cf57eb193e9421bad1b66a17dc0677c42c6b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/5e0cf57eb193e9421bad1b66a17dc0677c42c6b8"}]},"branch":"refs/heads/master"},"b3c453065e343d483cf818f3ac072f41833f4317":{"kind":"REWORK","_number":12,"created":"2026-10-10 17:48:16.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/12"}}},"commit":{"parents":[{"commit":"b911365d7d155057ed8f84e3e6679bf00a259c1b","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b911365d7d155057ed8f84e3e6679bf00a259c1b"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-10 17:44:49.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer,\ngets that message\u0027s answer and needs no admission, and one that\nrepeats a call whose reply went out gets a 410, so the call does not\nrun again.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies, and for clients to read discovery again, which takes up\nto cache_max_age. Until then, a client that still finds the server gets\na refusal and tries another, rather than lose its message as the process\nexits.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b3c453065e343d483cf818f3ac072f41833f4317"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b3c453065e343d483cf818f3ac072f41833f4317"}]},"branch":"refs/heads/master"},"b69463763ae022b504e4fda19fddc3ff95379f38":{"kind":"REWORK","_number":13,"created":"2026-10-12 22:30:53.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/13"}}},"commit":{"parents":[{"commit":"87919604b30fb3c4ff4ec67761931c531d007316","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/87919604b30fb3c4ff4ec67761931c531d007316"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-12 22:05:34.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer\nor a proxy cannot get the answer, gets that message\u0027s answer and needs\nno admission, and one that repeats a call whose reply went out gets a\n410, so the call does not run again. The server keeps the IDs of the\nmessages it took for a minute, or twice poll_timeout if longer: longer\nthan a client takes to send one again. It keeps at most 100000, and\nrefuses new messages while it has as many.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies, and for clients to read discovery again, which takes up\nto cache_max_age. Until then, a client that still finds the server gets\na refusal and tries another, rather than lose its message as the process\nexits.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b69463763ae022b504e4fda19fddc3ff95379f38"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b69463763ae022b504e4fda19fddc3ff95379f38"}]},"branch":"refs/heads/master"},"8b1960cce14de4116a7239140fbb44bd8c6c4e56":{"kind":"TRIVIAL_REBASE","_number":14,"created":"2026-10-13 06:52:52.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/14"}}},"commit":{"parents":[{"commit":"9197006f5e5d712a972537f29a58f2bbc757caac","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/9197006f5e5d712a972537f29a58f2bbc757caac"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-13 05:54:09.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished. It answers more with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. Each RPC server adds that many threads to\nthe WSGI server, so held calls cannot starve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer\nor a proxy cannot get the answer, gets that message\u0027s answer and needs\nno admission, and one that repeats a call whose reply went out gets a\n410, so the call does not run again. The server keeps the IDs of the\nmessages it took for a minute, or twice poll_timeout if longer: longer\nthan a client takes to send one again. It keeps at most 100000, and\nrefuses new messages while it has as many.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies, and for clients to read discovery again, which takes up\nto cache_max_age. Until then, a client that still finds the server gets\na refusal and tries another, rather than lose its message as the process\nexits.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8b1960cce14de4116a7239140fbb44bd8c6c4e56"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8b1960cce14de4116a7239140fbb44bd8c6c4e56"}]},"branch":"refs/heads/master"},"3e203761f2bad8497481ce671c648477919cc5b0":{"kind":"REWORK","_number":15,"created":"2026-10-13 21:28:31.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/15"}}},"commit":{"parents":[{"commit":"9197006f5e5d712a972537f29a58f2bbc757caac","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/9197006f5e5d712a972537f29a58f2bbc757caac"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-13 21:21:38.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests calls and topic casts that\nit has not finished. It answers more with a 503 that sends the client to\nanother server, as it does while it stops, and a request for an unknown\ntarget gets a 404 of the same kind. A cast for one named server, such as\na fanout delivery, has no other server to go to: it is not refused for\nthis, and waits in the RPC server\u0027s queue, as in a broker\u0027s. Each RPC\nserver adds that many threads to the WSGI server, so held calls cannot\nstarve quick requests.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer\nor a proxy cannot get the answer, gets that message\u0027s answer and needs\nno admission, and one that repeats a call whose reply went out gets a\n410, so the call does not run again. The server keeps the IDs of the\nmessages it took for a minute, or twice poll_timeout if longer: longer\nthan a client takes to send one again. It keeps at most 100000, and\nrefuses new messages while it has as many.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies, and for clients to read discovery again, which takes up\nto cache_max_age. Until then, a client that still finds the server gets\na refusal and tries another, rather than lose its message as the process\nexits.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3e203761f2bad8497481ce671c648477919cc5b0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3e203761f2bad8497481ce671c648477919cc5b0"}]},"branch":"refs/heads/master"},"45a90d741b905b8e3fce8b71e2330ddae0a179e5":{"kind":"REWORK","_number":16,"created":"2026-10-13 23:09:00.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/1007622/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/22/1007622/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/22/1007622/16"}}},"commit":{"parents":[{"commit":"9197006f5e5d712a972537f29a58f2bbc757caac","subject":"HTTP-RPC driver: wire protocol and client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/9197006f5e5d712a972537f29a58f2bbc757caac"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-27 05:19:51.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-10-13 23:02:08.000000000","tz":-240},"subject":"HTTP-RPC driver: server side and entry point","message":"HTTP-RPC driver: server side and entry point\n\nAdd the server side of the HTTP-RPC driver, and the driver itself,\nwhich registers as the \"http\" transport. The driver carries RPC only:\nnotifications need another transport.\n\nOne cheroot WSGI server serves every RPC server of a transport, and\nroutes each request by its X-RPC-Target header. Its worker threads,\nrather than the thread that accepts connections, complete the TLS\nhandshakes, so a peer that stalls in one holds up nobody else. Each RPC\nserver admits at most max_concurrent_requests messages that it has not\nfinished, running or queued, and adds that many threads to the WSGI\nserver, so held calls cannot starve quick requests. It answers more\ncalls and topic casts with a 503 that sends the client to another\nserver, as it does while it stops, and a request for an unknown target\ngets a 404 of the same kind. A cast for one named server, such as a\nfanout delivery, has no other server to go to: it waits in the RPC\nserver\u0027s queue, as in a broker\u0027s, up to max_queued_casts more.\n\nThe server holds a call until it ends or the client\u0027s poll timeout\npasses, then answers 202. The reply waits in a table of at most\nmax_pending_calls entries until its caller fetches it. Every message\ncarries an ID. A request that repeats the ID of a message the server\nhas taken, as a client sends when a connection closes with no answer\nor a proxy cannot get the answer, gets that message\u0027s answer and needs\nno admission, and one that repeats a call whose reply went out gets a\n410, so the call does not run again. The server keeps the IDs of the\nmessages it took for a minute, or twice poll_timeout if longer: longer\nthan a client takes to send one again. It keeps at most 100000, and\nrefuses new messages while it has as many.\n\nDiscovery renews the registrations of a process only while its WSGI\nserver answers a health check at the address that clients use, so a\nwedged process leaves discovery within one membership timeout.\n\nStopping an RPC server refuses new requests, then withdraws its\nregistration, which can wait out an unavailable backend. Cleanup waits\nup to shutdown_grace_period for the callers of the calls it ran to fetch\ntheir replies, and for clients to read discovery again, which takes up\nto cache_max_age. Until then, a client that still finds the server gets\na refusal and tries another, rather than lose its message as the process\nexits.\n\nUnder Eventlet, whose select()-based selector notices a kept-alive\nconnection only when cheroot\u0027s wait times out, the server closes each\nconnection after its response.\n\noslo.messaging\u0027s RPC server now replies to a message whose endpoint let\na BaseException escape, such as an eventlet.Timeout, and logs the\nexception, which the executor would not report, before it goes on. Only\na reply frees a message\u0027s admission in this driver: without one, the\ncaller waited for its timeout, and the RPC server lost a slot for good.\n\nPartial-Implements: blueprint oslo-http-driver\nCo-Authored-By: Xiang Wang \u003cxiang.wang@lycorp.co.jp\u003e\nCo-Authored-By: Yushiro Furukawa \u003cyushiro.furukawa@lycorp.co.jp\u003e\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: Ifcff5a1f7130a91300ee7198d19d55500047066b\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/45a90d741b905b8e3fce8b71e2330ddae0a179e5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/45a90d741b905b8e3fce8b71e2330ddae0a179e5"}]},"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"},{"label":"Backport-Candidate","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":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"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":[],"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":""}}}]}
