)]}'
{"id":"openstack%2Foslo.messaging~993525","triplet_id":"openstack%2Foslo.messaging~master~I248a5e92ae0ba71e7fe657199d0f68f2bfed0aee","project":"openstack/oslo.messaging","branch":"master","attention_set":{},"removed_from_attention_set":{"10273":{"account":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"last_update":"2026-06-23 02:12:53.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"I248a5e92ae0ba71e7fe657199d0f68f2bfed0aee","subject":"HTTP-RPC driver: Replace Flask with Hypercorn ASGI","status":"ABANDONED","created":"2026-06-16 08:49:32.000000000","updated":"2026-06-23 02:12:53.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"75a3d17297b6a269c18d86958d94f40abfa33cb4","_number":993525,"virtual_id_number":993525,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-06-17 15:21:06.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_updates":[{"updated":"2026-06-16 11:08:31.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":"f0f64c0cb3b1f2f39bc1bd4ae8f8d9ebd929abb9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-16 08:49:32.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"49aa8d93446bb291e1104f92acef2ff2f871f417","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-16 11:08:31.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/ca845b94be8e44adbe9027c25c8ea12e\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/8b701019cb954c2a8a8442e98a633e83 : SUCCESS in 3m 08s\n- requirements-check https://zuul.opendev.org/t/openstack/build/035c80cfefe64bd79c481f9bd1fb65f5 : FAILURE in 2m 48s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/ae228592a32247c0b39766f66a4e210d : SUCCESS in 1h 37m 28s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1b1ac47da194420b8aa26b839f2191b0 : SUCCESS in 5m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a89f16d0f9ff41d58b142366d57152e4 : SUCCESS in 3m 52s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4f9bb6c03ac44df49b1012dc3c1f59cf : SUCCESS in 4m 18s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/749143a15bc24732a746b464697f12cb : SUCCESS in 5m 27s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/26a6bc68d4b24985aa0968bdfb810a25 : FAILURE in 5m 08s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/27fd74fef91c4aac9c04a51543276841 : FAILURE in 3m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e293cdccc5db4fae9973d24e3aa7b4e4 : SUCCESS in 4m 54s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/29d468aa789c4a56bc751c719e204144 : SUCCESS in 6m 44s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/b2ff1fc096dd4b338b1349f36c58eb34 : FAILURE in 12m 24s (non-voting)\n- oslo.messaging-tox-py310-func-http https://zuul.opendev.org/t/openstack/build/9be4098ddcea4f48b2a6025c7f4b2285 : FAILURE in 3m 24s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/72f29c972f5b49a398e51183d016588a : SUCCESS in 1h 46m 39s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/dee97f6f411649b1af777d68c40c563f : SUCCESS in 2h 03m 24s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/69ee9e825c1d4f40836a20ab238dce40 : SUCCESS in 1h 08m 09s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/ecbddb31701b468e9b5ab521c06600f2 : SUCCESS in 1h 13m 24s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"a3d457470093bb787d5a7bbbdf2852cf78d211a2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-17 13:29:16.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"c46eb7859bd36c5bab4aa679002438a188b554a2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 15:21:06.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/2d6c1cce6c8b4711a2b500f046de1024\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/03b12b09c834418089cbd7f65a110201 : SUCCESS in 2m 04s\n- requirements-check https://zuul.opendev.org/t/openstack/build/54e1e97d8bb740338c16471a0fa7eca6 : FAILURE in 4m 38s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/a73f30daa6494803846014e17700e270 : SUCCESS in 57m 27s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2adf4932df274a9db3bd7c37cb575dba : SUCCESS in 5m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/38cecc109bf147acb1b4815754df5ca0 : SUCCESS in 3m 19s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2ac1a32b79da44419623c007389b61dd : SUCCESS in 3m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4b895876cd6744a1b59db7f6dbfe970d : SUCCESS in 4m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a0b11cd30ee14ac891bdbc8df3b5f494 : SUCCESS in 5m 30s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7406696b01cc45f5b8cb92daca46e32c : SUCCESS in 5m 22s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/503141dca312485cb98e525d08a5e242 : SUCCESS in 5m 53s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/7439140a443c4e8b90caf651fceda824 : SUCCESS in 4m 10s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/69ef59c2c0604bcea5e203a39f489311 : FAILURE in 6m 31s (non-voting)\n- oslo.messaging-tox-py310-func-http https://zuul.opendev.org/t/openstack/build/d0815b61d2ab40c599dfccf3bd63c6e6 : FAILURE in 3m 25s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/11182320396d4212bb47a6eb94363d8a : SUCCESS in 1h 43m 14s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/c19e1d44e3544df4bf266150f797a43a : SUCCESS in 1h 07m 47s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/6c42362ad34e459fb5c6364b44099ebd : SUCCESS in 49m 17s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/fca61a5e56c24d899739952e0feb86a5 : SUCCESS in 1h 21m 17s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"75a3d17297b6a269c18d86958d94f40abfa33cb4","tag":"autogenerated:gerrit:abandon","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-23 02:12:53.000000000","message":"Abandoned\n\nThis was folded into a previous layer since hypercorn was added to g-r","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"8a26fcb149c491f9376d5432d079102868e4b85f","revisions":{"cdc7eef91a6b5af24c468717ce373cb2bf3f1794":{"kind":"REWORK","_number":1,"created":"2026-06-16 08:49:32.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/25/993525/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/25/993525/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/1"}}},"commit":{"parents":[{"commit":"3d31af425602cb5b5965240148b11ea69e3e736a","subject":"HTTP-RPC driver: K8s EndpointSlice service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3d31af425602cb5b5965240148b11ea69e3e736a"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-16 08:33:57.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-16 08:47:04.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: Hypercorn ASGI server","message":"WIP: HTTP-RPC driver: Hypercorn ASGI server\n\nReplace Flask/Flask-RESTful WSGI app with a bare ASGI application\nserved natively by Hypercorn. This eliminates ~9 transitive\ndependencies and enables native HTTP/2 on the server side.\n\nKey changes:\n- Replace cheroot WSGI server with Hypercorn ASGI server\n- Replace Flask Blueprint/Resource routes with bare ASGI app\n- fd:// socket binding eliminates TOCTOU port race\n- Fork-safe httpx client with PID tracking and lazy init\n- asyncio.to_thread for blocking RPC dispatch in async handlers\n- When http2\u003dTrue, disable HTTP/1.1 (http1\u003dnot http2) to force\n  httpcore HTTP2Connection regardless of ALPN negotiation\n- Timing-safe auth comparison via hmac.compare_digest\n- eventlet _real_threading compat for OS-thread Hypercorn loops\n- Monkey-patch Hypercorn TCPServer._close for SSL shutdown timeout\n\nDependencies removed: Flask, Flask-RESTful, cheroot\nDependencies added: hypercorn\u003e\u003d0.17.0\nDependencies changed: httpx -\u003e httpx[http2]\u003e\u003d0.28.0\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I248a5e92ae0ba71e7fe657199d0f68f2bfed0aee\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/cdc7eef91a6b5af24c468717ce373cb2bf3f1794"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/cdc7eef91a6b5af24c468717ce373cb2bf3f1794"}]},"branch":"refs/heads/master"},"8a26fcb149c491f9376d5432d079102868e4b85f":{"kind":"REWORK","_number":2,"created":"2026-06-17 13:29:16.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/25/993525/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/25/993525/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/25/993525/2"}}},"commit":{"parents":[{"commit":"f7671e598d075c4a4aa38fa1c068d2abc42d5ebc","subject":"HTTP-RPC driver: K8s Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f7671e598d075c4a4aa38fa1c068d2abc42d5ebc"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-16 08:33:57.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-17 13:24:43.000000000","tz":-240},"subject":"HTTP-RPC driver: Replace Flask with Hypercorn ASGI","message":"HTTP-RPC driver: Replace Flask with Hypercorn ASGI\n\nReplace Flask/Flask-RESTful WSGI app with a bare ASGI application\nserved natively by Hypercorn. This eliminates ~9 transitive\ndependencies and enables native HTTP/2 on the server side.\n\nKey changes:\n- Replace cheroot WSGI server with Hypercorn ASGI server\n- Replace Flask Blueprint/Resource routes with bare ASGI app\n- fd:// socket binding eliminates TOCTOU port race\n- Fork-safe httpx client with PID tracking and lazy init\n- asyncio.to_thread for blocking RPC dispatch in async handlers\n- When http2\u003dTrue, disable HTTP/1.1 (http1\u003dnot http2) to force\n  httpcore HTTP2Connection regardless of ALPN negotiation\n- Timing-safe auth comparison via hmac.compare_digest\n- eventlet _real_threading compat for OS-thread Hypercorn loops\n- Monkey-patch Hypercorn TCPServer._close for SSL shutdown timeout\n\nDependencies removed: Flask, Flask-RESTful, cheroot\nDependencies added: hypercorn\u003e\u003d0.17.0\nDependencies changed: httpx -\u003e httpx[http2]\u003e\u003d0.28.0\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I248a5e92ae0ba71e7fe657199d0f68f2bfed0aee\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/8a26fcb149c491f9376d5432d079102868e4b85f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8a26fcb149c491f9376d5432d079102868e4b85f"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"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":""}}}]}
