)]}'
{"id":"openstack%2Fneutron~1007403","triplet_id":"openstack%2Fneutron~master~I79e73cdf17a5d6a22e10b177eb74da549c4af0af","project":"openstack/neutron","branch":"master","attention_set":{},"removed_from_attention_set":{"13861":{"account":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"last_update":"2026-09-29 13:08:21.000000000","reason":"\u003cGERRIT_ACCOUNT_13861\u003e replied on the change","reason_account":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"}}},"hashtags":[],"change_id":"I79e73cdf17a5d6a22e10b177eb74da549c4af0af","subject":"Fix OVN functional job hang from OVSDB IDL connection fd leaks","status":"MERGED","created":"2026-09-25 05:09:51.000000000","updated":"2026-09-29 16:58:25.000000000","submitted":"2026-09-29 16:58:25.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":8,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1007403","meta_rev_id":"aac0ef387d031e294d695f34964a82d40cd249a3","_number":1007403,"virtual_id_number":1007403,"owner":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"recommended":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":1,"date":"2026-09-28 08:49:37.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":0,"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-09-29 16:58:25.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":{"approved":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"all":[{"value":2,"date":"2026-09-28 07:58:10.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":2,"date":"2026-09-28 14:00:59.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":2,"date":"2026-09-28 15:32:32.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":2,"date":"2026-09-28 14:24:35.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":0,"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":1,"date":"2026-09-28 14:24:35.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"approved":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"all":[{"value":2,"date":"2026-09-28 07:58:10.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":0,"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-25 05:48:08.000000000","updated_by":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"reviewer":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-09-25 06:00:40.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-09-25 10:53:20.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"CC"},{"updated":"2026-09-28 07:58:10.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"CC"},{"updated":"2026-09-28 07:58:10.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"CC"},{"updated":"2026-09-28 07:58:10.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"CC"},{"updated":"2026-09-28 07:58:10.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"REVIEWER"},{"updated":"2026-09-28 14:00:59.000000000","updated_by":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"REVIEWER"},{"updated":"2026-09-28 14:24:35.000000000","updated_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"REVIEWER"},{"updated":"2026-09-28 15:32:32.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"REVIEWER"}],"messages":[{"id":"01a2482210ecaf7b62ef01aed907dd02c2473b4a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 05:09:51.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c7350aa1d835e144f5eadeb90dcbe92d1ba9b064","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 05:28:10.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"0b8c162bf3382490a56872704af130da15d93676","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 05:48:08.000000000","message":"Patch Set 1: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/1 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":1},{"id":"3d54bcfbd1e6250e54e68c3f4c810d1cad22dd0a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-25 06:00:40.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/d613c9cafacb4499a3ed39fdae740eaa\n\n- neutron-functional https://zuul.opendev.org/t/openstack/build/1827a107558e45b8ae00a170425e827a : FAILURE in 31m 24s","accounts_in_message":[],"_revision_number":2},{"id":"1909b052a3c9f1a0828c24e5f51d8ba38a50c0d1","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 06:02:16.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"35a175acde200ce6bd861a4ff367b9a406c86105","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 06:21:19.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"bddd5491d55fdde4acd6fb366422a938626f4e94","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 06:24:59.000000000","message":"Patch Set 2: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/2 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":2},{"id":"8f6e9d73c675e0753b35b6eedb0d2082c603888f","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 07:01:26.000000000","message":"Patch Set 2: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/2 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":2},{"id":"c8f6a1bde1f1cd1f6d9a59aa630bf3b01f265788","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 07:38:41.000000000","message":"Patch Set 3: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/3 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":3},{"id":"7da231f82a97eee96ea1853cfb43c267183ae6d9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-25 07:54:03.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/5efcd0b5748d452fb3cd3da6e7d5af2e\n\n- neutron-functional https://zuul.opendev.org/t/openstack/build/5d5a43dd38e442188e5dfeab799dbb65 : TIMED_OUT in 1h 32m 06s","accounts_in_message":[],"_revision_number":3},{"id":"eaeb62a1e9fa4557d05513290c9eb9dd82382338","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 07:59:38.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1, Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"0916c41ea6248b4d80dd095f9f40396749397d98","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 10:05:02.000000000","message":"Patch Set 4: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/4 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":4},{"id":"8ca8dd6ee8b609f7ba203ed3afade66fbd2babb5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-25 10:23:32.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/522801c93a7b4b939c4dfc55c61e6983\n\n- neutron-functional https://zuul.opendev.org/t/openstack/build/bba68077f19d4b219827aecf9dc52f79 : TIMED_OUT in 1h 32m 13s","accounts_in_message":[],"_revision_number":4},{"id":"7797b5c7f6fd29f27fe24175f88ea5a2e3e35e23","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2026-09-25 10:53:20.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"ef5b5de65942b8982809487f3aa4e794b2e32608","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 11:34:57.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1, Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"8b9c406a01705f0c493be4a9c14d15eec1dab8ef","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 11:39:59.000000000","message":"Patch Set 4: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/4 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":4},{"id":"42fbbc8b7a3deb7a7ac7a079c106ce3c65eaab3c","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 12:17:06.000000000","message":"Patch Set 5: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/5 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":5},{"id":"a0874dba8795bb51ecb51c9f72aaaffbc73a37e3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-25 12:58:29.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/52fb456559c0408fa551351d1090e32c\n\n- neutron-functional https://zuul.opendev.org/t/openstack/build/40f944e2c3b541d18b2eb8e7e4a4ea9d : SUCCESS in 55m 38s","accounts_in_message":[],"_revision_number":5},{"id":"e8dc162100c7e85a3b49ffa9def041c762a7da50","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-25 13:08:59.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"1f6c6351177011ff479f79daa0e5a555a65036b3","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-25 13:47:19.000000000","message":"Patch Set 6: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/6 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":6},{"id":"bd97d4090cf9eb87049460d70915e483f27d4c67","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-25 15:07:52.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/ea05d99a7477474f857fabdeaaaea497\n\n- neutron-functional-01 https://zuul.opendev.org/t/openstack/build/376d79e3713a4999a0fbe5b99253c105 : SUCCESS in 1h 03m 01s\n- neutron-functional-02 https://zuul.opendev.org/t/openstack/build/267da0e584474d8bb94d260bb224f5ed : SUCCESS in 58m 24s\n- neutron-functional-03 https://zuul.opendev.org/t/openstack/build/989930b2e83c4affbe5e4e02fcc94b94 : RETRY_LIMIT in 11m 05s\n- neutron-functional-04 https://zuul.opendev.org/t/openstack/build/958717027f644b3f99b3fd0ed5f7d801 : SUCCESS in 1h 03m 31s\n- neutron-functional-05 https://zuul.opendev.org/t/openstack/build/1fb875af80df4bdbbe0219da9b61c875 : SUCCESS in 1h 01m 48s\n- neutron-functional-06 https://zuul.opendev.org/t/openstack/build/e78dd1ddd7f849dcaf186ba5d6590472 : SUCCESS in 1h 05m 23s\n- neutron-functional-07 https://zuul.opendev.org/t/openstack/build/6cf0fb9c0978436c8022c856800b9375 : SUCCESS in 59m 17s\n- neutron-functional-08 https://zuul.opendev.org/t/openstack/build/a356e2d37e8e43c5bc3eacfb4fc5a1d0 : RETRY_LIMIT in 4m 39s\n- neutron-functional-09 https://zuul.opendev.org/t/openstack/build/c375da9a243d4b81b13112dacc424155 : SUCCESS in 58m 48s\n- neutron-functional-10 https://zuul.opendev.org/t/openstack/build/4ada29834c1847ca8728e311fe5cb8bd : SUCCESS in 59m 31s","accounts_in_message":[],"_revision_number":6},{"id":"f11d574a93bd35de81880b1b6ba730aabead83d5","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-26 17:09:53.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"84736c57bd5d54a78c79c47fc653643b0c1f155c","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-26 17:39:27.000000000","message":"Patch Set 6:\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/6 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":6},{"id":"a468bf1032b80451630dd27c10a132282ab665e3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-26 18:39:51.000000000","message":"Patch Set 6:\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/8aa88af70edd43b4b266a0c5b37cace4\n\n- neutron-functional-01 https://zuul.opendev.org/t/openstack/build/4cf6074e9d5e4b9e81a2000a48ff7b5f : SUCCESS in 1h 05m 03s\n- neutron-functional-02 https://zuul.opendev.org/t/openstack/build/a040ea77332b475b9a0250fc9e656647 : SUCCESS in 1h 04m 36s\n- neutron-functional-03 https://zuul.opendev.org/t/openstack/build/dc71064b6c8b4cae8fda283b8895b63e : SUCCESS in 1h 03m 12s\n- neutron-functional-04 https://zuul.opendev.org/t/openstack/build/585614a876a7498e9a60f62337d49f57 : SUCCESS in 1h 01m 22s\n- neutron-functional-05 https://zuul.opendev.org/t/openstack/build/f200ed0144d24407abf658330e03314f : SUCCESS in 1h 03m 45s\n- neutron-functional-06 https://zuul.opendev.org/t/openstack/build/81b7866bd32047a7a758c365f18932c6 : RETRY_LIMIT in 3m 34s\n- neutron-functional-07 https://zuul.opendev.org/t/openstack/build/fe3dd94656584f8fa75d5846c0cdfc85 : RETRY_LIMIT in 3m 51s\n- neutron-functional-08 https://zuul.opendev.org/t/openstack/build/6d4503ff8ed343cf8e69d3ad1c27557a : SUCCESS in 1h 03m 09s\n- neutron-functional-09 https://zuul.opendev.org/t/openstack/build/44fa4d8274c54f8b973a1a55f12ef424 : FAILURE in 1h 00m 45s\n- neutron-functional-10 https://zuul.opendev.org/t/openstack/build/03a9ddf9c51347f4a3d3098b0580212e : SUCCESS in 1h 02m 44s","accounts_in_message":[],"_revision_number":6},{"id":"7f95458cb198be9e4965b1d8032cf48728f498eb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-28 05:07:54.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1, Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"4b62e13da9321a46b76b1bf1fd3f061f6eff9fed","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-28 05:46:16.000000000","message":"Patch Set 7: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/7 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":7},{"id":"d25899364c759b0c07d4c1aaa83bb3eff4fc27cb","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2026-09-28 06:15:09.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"85c5435ec8baa33a9006a51c7648dc8f5c681d7a","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-28 06:54:44.000000000","message":"Patch Set 7:\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/7 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":7},{"id":"4ebcfa0a037db80ee41dd12a28b7812e23da3d90","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 06:55:04.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/33299a1536d9400ebb663b73b2e99fa0\n\n- neutron-functional-01 https://zuul.opendev.org/t/openstack/build/193b836a96b74ca7aabc38156866671a : SUCCESS in 59m 34s\n- neutron-functional-02 https://zuul.opendev.org/t/openstack/build/224fd7eaef474f118fececabe89672cb : SUCCESS in 58m 21s\n- neutron-functional-03 https://zuul.opendev.org/t/openstack/build/aaa06e98d1834b219b4fd74be6aad176 : FAILURE in 31m 18s\n- neutron-functional-04 https://zuul.opendev.org/t/openstack/build/d4c0bf766c5b4745bf162792b62710ad : SUCCESS in 59m 13s\n- neutron-functional-05 https://zuul.opendev.org/t/openstack/build/063b8a7c31374c69824e0877e79c7107 : SUCCESS in 58m 15s\n- neutron-functional-06 https://zuul.opendev.org/t/openstack/build/9f6a5b5512e44140ab9d193fff1e3a50 : SUCCESS in 1h 03m 21s\n- neutron-functional-07 https://zuul.opendev.org/t/openstack/build/1834b6dba4f845c2b3c58a4a665af2bf : SUCCESS in 58m 23s\n- neutron-functional-08 https://zuul.opendev.org/t/openstack/build/82051b8cc84541c89d3c252153324df8 : RETRY_LIMIT in 5m 37s\n- neutron-functional-09 https://zuul.opendev.org/t/openstack/build/6c06b34956e045f6aabc849552a3710a : SUCCESS in 1h 03m 45s\n- neutron-functional-10 https://zuul.opendev.org/t/openstack/build/e33191a0a07449de9a6b24f2fc5a6238 : SUCCESS in 58m 47s","accounts_in_message":[],"_revision_number":7},{"id":"9ccece8da473563ae6364b684378755c8777b6ad","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-28 07:49:32.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Verified+1, Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"82a985a8584d95fbc66f16c8a6450373000d381a","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2026-09-28 07:58:10.000000000","message":"Patch Set 8: Code-Review+2 Review-Priority+2","accounts_in_message":[],"_revision_number":8},{"id":"8c1a9efbf9c85d36061d513776d68a5d500a8d38","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 08:29:36.000000000","message":"Patch Set 8:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/216b0068b4fe4241833cfd48823e6e5d\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/4ab9790734ec4aea9c3ebbc4c899cc1a : SUCCESS in 38m 16s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/0cab3cc2629f4f18bf93a374f62ebb70 : SUCCESS in 29m 37s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/d0dfa355d4c54a1989219e9333002352 : SUCCESS in 22m 37s","accounts_in_message":[],"_revision_number":8},{"id":"3ba792e904a9769bc2f3790163f3b12c4be1ef4c","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-28 08:49:37.000000000","message":"Patch Set 8: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/8 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":8},{"id":"d39e2fc72bf906ae6dd1157de0f051db0b6a7fdb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 09:51:55.000000000","message":"Patch Set 8: 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/e758002ad3d84fcd98b331d9f2adc25c\n\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/98778bcbb9d14415a30454b1c4caed1d : SUCCESS in 57m 11s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/c581931a03d04ae68565779ec3817575 : FAILURE in 6m 38s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/416ab23982204eabae5e770b6543cd49 : SUCCESS in 1h 56m 57s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/ed0cade34486455ea8c1b0cab8b0da39 : SUCCESS in 31m 27s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/56886d3e4e624b26a6d7994e65844384 : SUCCESS in 1h 28m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cc89895a33fe483a8c9e82ee2ba77d96 : SUCCESS in 10m 38s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1e494159fcfc470aadae0a78e864415b : SUCCESS in 22m 03s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5d74ef9ca2b74d60be57c3148993520f : SUCCESS in 26m 36s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9f2f936c2f79420f93d3da3ada1b3576 : SUCCESS in 24m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4c1f43b1c38240f193a289136ede4ab8 : SUCCESS in 13m 48s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1fa035dbc29840e4a37cff883cf7d7c0 : SUCCESS in 29m 28s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/6a0c99f72f3641039956e961b7f8016b : SUCCESS in 1h 45m 31s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"9088e5f2b3adf249fff00b00b5d1d6c9b0e0ee5e","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-28 10:07:34.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"f00c310e494915a5c7243831e29902ce0efa2a20","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-28 10:41:40.000000000","message":"Patch Set 8:\n\nArista third party testing FAILED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/8 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":8},{"id":"89e9ddf2961437a2449fcb140f3a71c4410b68c9","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 12:01:47.000000000","message":"Patch Set 8:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d1421c21aaec420c80bd76c8bccd3383\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/1617f76c05144ef2ae8ffa2b378b05c0 : SUCCESS in 49m 28s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/f51c46ef64e74c53b03595fd1b6a2873 : SUCCESS in 46m 05s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"6026da7af79b49e4af31ae05e9b9a16ae8e1430f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 12:56:04.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/45241a3addcf46249200dc2ed22b45d8\n\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/71eb3261c929401d978909c7ec6c8430 : SUCCESS in 1h 04m 09s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/532273a338084ff489f74b71830894fa : SUCCESS in 1h 09m 46s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/cf9759a06fb44e09a353bfa0e0414aae : SUCCESS in 2h 19m 22s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/b8c6a3e05ffa4bdea8943652ad5c500f : SUCCESS in 31m 10s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b0b3649c50004f729c9e362772dbf86a : SUCCESS in 53m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4109d14b58aa438782ba6a266106d85b : SUCCESS in 12m 05s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/84174ab881b6462f866559ae08376799 : SUCCESS in 24m 17s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2f29d04740054d66942bd777da250932 : SUCCESS in 36m 04s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/34f5f967355545b296ac214b09686118 : SUCCESS in 13m 53s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ed4f177c6f0d4208a02d2198fea112cb : SUCCESS in 23m 49s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/30f06d59ced946ba801a31811a82dd63 : SUCCESS in 2h 19m 04s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"d72d405fb3dd7a8289d10154e1e0ccdd961ec3f1","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2026-09-28 14:00:59.000000000","message":"Patch Set 8: Code-Review+2","accounts_in_message":[],"_revision_number":8},{"id":"3eb5b2d7e7d3adbeae7977d3720ed7368fae50a8","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2026-09-28 14:24:35.000000000","message":"Patch Set 8: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":8},{"id":"02ad448fa5832282443e4c38c4988067e46d443a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 14:27:22.000000000","message":"Patch Set 8: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":8},{"id":"6af8a1c26c78689c175749d4bfb3c392d182a9cf","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2026-09-28 15:32:32.000000000","message":"Patch Set 8: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"b35921d8592de72691d66d1b58cf0cd9b1731a33","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 16:46:30.000000000","message":"Patch Set 8: Verified-2\n\nBuild failed (gate pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\nhttps://zuul.opendev.org/t/openstack/buildset/86f921bf40e047e684202aef24269af5\n\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ca57fe9da0b341308188c2a107e298eb : SUCCESS in 40m 34s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/9925f26a0a404d2abffdb9e4a5e027ee : SUCCESS in 1h 16m 38s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/e964abd7eae24230b193025925412b20 : SUCCESS in 1h 59m 04s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b7c329be86d441b2b456a45fe3077fa0 : SUCCESS in 12m 37s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2ccff78fe7134c58a053b1db9fa4bdd3 : SUCCESS in 25m 37s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/686ec721369b44b196c09925048fb61c : SUCCESS in 23m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7c6a765ff4404d8ca8d1c00c75014d5a : SUCCESS in 11m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/89144a8313864afe8d18ad8b280bde85 : SUCCESS in 21m 05s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/4cc747f0eed441c59de84751d33a727a : FAILURE in 22m 02s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"27a36bd9286c5dffe74ae4cb4050fdf1b6160b1d","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2026-09-29 09:24:22.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"2b66c26491a9036b35ab92fdf742ed9be72fcc34","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-29 10:06:23.000000000","message":"Patch Set 8:\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/8 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":8},{"id":"36dc1022470510432a05cc4f272978147fbb3dcc","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 11:26:58.000000000","message":"Patch Set 8: 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/13794a16cbdf4aa4b37c2a437c66848b\n\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/fd46d9a0e167422c843dee1775dd9dde : SUCCESS in 57m 42s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/bc047ef9d1184731aa398bdb3c1f71da : SUCCESS in 1h 08m 13s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/7feaa0c4919f4e648531cdf362b11492 : SUCCESS in 1h 54m 25s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/a323bf5af47d475abe2c8edb327bd17f : SUCCESS in 33m 38s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a1a9a551189542b0a9a651dbbcf50ff0 : SUCCESS in 1h 02m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f5230f345c38423e8c4a68f5fd739dea : SUCCESS in 10m 26s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/680bfb90aaea4c69b160bf375e36072e : SUCCESS in 30m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/efe6f42eb69b41e5b5e3d61c93fa482b : SUCCESS in 40m 07s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2ad340017d3f497d988dafe29bed9d7e : SUCCESS in 13m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/fdc1c9d83cec4b6a8591324c768cf788 : SUCCESS in 33m 09s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/a15140dad3eb419daf8c6142a774ae0b : FAILURE in 18m 16s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"2b70075ba820bcd45910e0c5c0bb6b37284076f6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 11:31:20.000000000","message":"Patch Set 8:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/35d84ddfc31a45bc8950f61890127c3e\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/0356e9da65b84419a22ce31cab34d856 : SUCCESS in 47m 58s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/8d6d770e1502466a991ecc93fdd7c124 : SUCCESS in 1h 03m 47s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"3b2d7d309774920723479cf965a54955a13c3856","author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"date":"2026-09-29 13:08:21.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"4de7d8b9e99552afa059a9edc599c3dedbb327e3","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 14:15:46.000000000","message":"Patch Set 8:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4c817fd9bbe2418b9efffea7ace388fe\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/4e3af84272ca4c24b1d82334691639ca : SUCCESS in 57m 38s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/01d1c70b0ea64adfa6b216c766715717 : SUCCESS in 1h 04m 47s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"69d073fd73e2b7415135357f61156d254d450262","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-29 14:43:13.000000000","message":"Patch Set 8:\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/03/1007403/8 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":8},{"id":"5835f112e7e750d5f9e00fea33314a7dd0e4fe59","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 15:01:44.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d89bb449e0f840adbc7d29a010daef88\n\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8cd3f001936449f3b727073a9cbf18bf : SUCCESS in 54m 49s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/be9e1163af924f68a5e141af996ab356 : SUCCESS in 1h 06m 28s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/6fae15c221944d5088af815b4c162b47 : SUCCESS in 1h 46m 20s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/e7fd1727fd424242ba852f04a3a9aed9 : SUCCESS in 30m 41s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/dc9edf6167284815983c178d558979d0 : SUCCESS in 55m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0d8837258c464f8286bbfe3378b1e95f : SUCCESS in 10m 52s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/83a77c6471d44a979c2c093e6d56bbf4 : SUCCESS in 28m 42s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d80469d1e78f4090be8bfde9160c296e : SUCCESS in 34m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7f644851ec24428d94e4512e82e64e79 : SUCCESS in 14m 37s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/272d0fefe4e94ed3bd3815e8ff960357 : SUCCESS in 24m 58s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/3c0fd31e48944d3d83534707e2d6b353 : SUCCESS in 1h 45m 16s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"94564876f7ecc580a35c8a854f3e5cad6dd274c2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 15:02:57.000000000","message":"Patch Set 8: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":8},{"id":"46bba839ef6589db6ddcdee2e2bf53e6321d4d3d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 16:58:25.000000000","message":"Patch Set 8: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/939dd7cb43244095827d3cf9c809ef8d\n\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b30ffc4894e94e22a38a28a08cfc2370 : SUCCESS in 1h 01m 14s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/dd544a75096f48d3b2709b71a00ecf51 : SUCCESS in 1h 08m 36s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/678137158ba0411a94a13d0b338ada5c : SUCCESS in 1h 46m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f9117150f3274edfb95abcc965b92cb4 : SUCCESS in 11m 08s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9fc141b6ebdb41f5972070290f8b0260 : SUCCESS in 30m 16s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e5f36da9740e4c6ebb769c5f88ef92cd : SUCCESS in 27m 40s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e5dce3f0d7924100ba7b2766f07eb523 : SUCCESS in 11m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/542c0c7f53e34188b6b25084cfd25968 : SUCCESS in 9m 55s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/a489079aea6d4dbaa0b9f21ba7a35b61 : SUCCESS in 1h 01m 00s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"aac0ef387d031e294d695f34964a82d40cd249a3","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 16:58:25.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":8}],"current_revision_number":8,"current_revision":"d4e58301b94d50f8ccae5b3db1186073dba41c91","revisions":{"e792a6f9a21965ac1faed63312bbd57e227716a6":{"kind":"REWORK","_number":1,"created":"2026-09-25 05:09:51.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/1"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 05:09:45.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e792a6f9a21965ac1faed63312bbd57e227716a6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e792a6f9a21965ac1faed63312bbd57e227716a6"}]},"branch":"refs/heads/master"},"314868f46fe1a35bb9a58bc2d01678b2aca75b41":{"kind":"REWORK","_number":2,"created":"2026-09-25 05:28:10.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/2"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 05:27:41.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/314868f46fe1a35bb9a58bc2d01678b2aca75b41"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/314868f46fe1a35bb9a58bc2d01678b2aca75b41"}]},"branch":"refs/heads/master"},"f030e645291ee8864f419c36545138e6fd9f6996":{"kind":"REWORK","_number":3,"created":"2026-09-25 06:21:19.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/3"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 06:21:01.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/f030e645291ee8864f419c36545138e6fd9f6996"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/f030e645291ee8864f419c36545138e6fd9f6996"}]},"branch":"refs/heads/master"},"d6d7e7976fdf6b3e6b8b34370603f2ac882bc3f2":{"kind":"REWORK","_number":4,"created":"2026-09-25 07:59:38.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/4"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 07:58:42.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nInvestigate functional job timeouts caused by a stestr worker getting\npermanently stuck.\n\nRoot cause: TestOVNFunctionalBase.stop() only stops the OVN NB/SB IDL\nconnection\u0027s run() thread. It never shuts down the connection\u0027s\nnotify_loop thread (ovsdbapp.event.RowEventHandler), which oslo_log\nonly shuts down via atexit, i.e. once per worker process rather than\nonce per test. That thread (and the fd it holds) survives every test\nthat created it. Separately, oslo_log.log.setup() removes the\nprevious test\u0027s log FileHandler from the root logger on every call\nbut never closes it, leaking one more fd per test. Because a stestr\nworker runs hundreds of tests sequentially in the same process, both\nleaks accumulate over the worker\u0027s whole lifetime until the open-fd\ncount crosses select()\u0027s hard 1024 FD_SETSIZE limit. At that point\nthe next OVN IDL connection attempt fails with \"ValueError:\nfiledescriptor out of range in select()\", which retries forever\n(intentionally, to tolerate a genuinely down OVSDB in production) and\nhangs the worker, and therefore the whole job, instead of just\nfailing that one test.\n\nThis also explains why the hang is seen on 4-CPU nodes but not on\n8-CPU nodes: stestr concurrency defaults to nproc, so a 4-CPU node\nruns fewer, longer-lived workers that each run roughly twice as many\ntests, and so accumulate roughly twice the leaked fds by the time the\nsuite finishes.\n\nChanges:\n- neutron/tests/functional/base.py: TestOVNFunctionalBase.stop() now\n  calls notify_handler.shutdown() for both the NB and SB IDLs before\n  ovsdb_connection.stop(), and logs instead of silently swallowing\n  any failure to shut down or stop a connection.\n- neutron/tests/functional/base.py: add per-test open-fd/thread count\n  instrumentation to BaseLoggingTestCase, writing one\n  open-fds-worker-\u003cpid\u003e.log per stestr worker under DEFAULT_LOG_DIR,\n  to make any fd/thread leak visible directly from collected job\n  logs.\n- neutron/tests/base.py: setup_test_logging() now closes the previous\n  test\u0027s log FileHandler once oslo_log.log.setup() has replaced it,\n  instead of leaking it.\n- zuul.d/project.yaml, zuul.d/base.yaml,\n  playbooks/configure_functional_job.yaml: CI-only scaffolding for\n  iterating on this investigation - restrict check to just\n  neutron-functional (with retries), shorten the job timeout, and\n  grant SSH access to the test node for live debugging. Not for\n  merging.\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/d6d7e7976fdf6b3e6b8b34370603f2ac882bc3f2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/d6d7e7976fdf6b3e6b8b34370603f2ac882bc3f2"}]},"branch":"refs/heads/master"},"fcad129cedf2c69357bb4b411edbae3d42da1e6c":{"kind":"REWORK","_number":5,"created":"2026-09-25 11:34:57.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/5"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 11:20:26.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nInvestigate functional job timeouts caused by a stestr worker getting\npermanently stuck.\n\nRoot cause: TestOVNFunctionalBase.stop() only stops the OVN NB/SB IDL\nconnection\u0027s run() thread. It never shuts down the connection\u0027s\nnotify_loop thread (ovsdbapp.event.RowEventHandler), which oslo_log\nonly shuts down via atexit, i.e. once per worker process rather than\nonce per test. That thread (and the fd it holds) survives every test\nthat created it. Separately, oslo_log.log.setup() removes the\nprevious test\u0027s log FileHandler from the root logger on every call\nbut never closes it, leaking one more fd per test. Because a stestr\nworker runs hundreds of tests sequentially in the same process, both\nleaks accumulate over the worker\u0027s whole lifetime until the open-fd\ncount crosses select()\u0027s hard 1024 FD_SETSIZE limit. At that point\nthe next OVN IDL connection attempt fails with \"ValueError:\nfiledescriptor out of range in select()\", which retries forever\n(intentionally, to tolerate a genuinely down OVSDB in production) and\nhangs the worker, and therefore the whole job, instead of just\nfailing that one test.\n\nThis also explains why the hang is seen on 4-CPU nodes but not on\n8-CPU nodes: stestr concurrency defaults to nproc, so a 4-CPU node\nruns fewer, longer-lived workers that each run roughly twice as many\ntests, and so accumulate roughly twice the leaked fds by the time the\nsuite finishes.\n\nA run with both leaks fixed still hit the same \"filedescriptor out of\nrange in select()\" wall, just later. The remaining piece is in\novs.poller: Poller always multiplexes every OVSDB IDL connection\n(both the persistent run() loop and new-connection setup) through\nselect.select() (SelectPoll \u003d _SelectSelect). The \"use the real\nselect.poll() when eventlet/gevent aren\u0027t monkey-patching select\"\nalternative that _SelectSelect\u0027s own docstring describes is dead code\nin ovs.poller: it is never actually wired up, so SelectPoll is always\nthe select()-based emulation regardless of whether eventlet is in\nuse. select.select() enforces the C library\u0027s FD_SETSIZE (1024)\nceiling on any fd *number* it is given, not just on the count of open\nfds, so even a much slower leak (or none at all, just a long test\nrun\u0027s natural fd churn) eventually pushes some fd\u0027s number past 1024\nand hits the same permanently-stuck retry loop. Since this job\ndoesn\u0027t use eventlet/gevent (OSKEN_HUB_TYPE\u003dnative), switch\novs.poller.SelectPoll to the real, uncapped select.poll()\nimplementation, which ovs.poller\u0027s own POLLIN/POLLOUT/POLLERR/\nPOLLHUP/POLLNVAL constants are already defined to be a drop-in\nreplacement for.\n\nChanges:\n- neutron/tests/functional/base.py: TestOVNFunctionalBase.stop() now\n  calls notify_handler.shutdown() for both the NB and SB IDLs before\n  ovsdb_connection.stop(), and logs instead of silently swallowing\n  any failure to shut down or stop a connection.\n- neutron/tests/functional/base.py: switch ovs.poller.SelectPoll to\n  the real select.poll() instead of the select()-based emulation, to\n  remove the FD_SETSIZE\u003d1024 ceiling on OVSDB IDL connections.\n- neutron/tests/functional/base.py: add per-test open-fd/thread count\n  instrumentation to BaseLoggingTestCase, writing one\n  open-fds-worker-\u003cpid\u003e.log per stestr worker under DEFAULT_LOG_DIR,\n  to make any fd/thread leak visible directly from collected job\n  logs.\n- neutron/tests/base.py: setup_test_logging() now closes the previous\n  test\u0027s log FileHandler once oslo_log.log.setup() has replaced it,\n  instead of leaking it.\n- zuul.d/project.yaml, zuul.d/base.yaml,\n  playbooks/configure_functional_job.yaml: CI-only scaffolding for\n  iterating on this investigation - restrict check to just\n  neutron-functional (with retries), shorten the job timeout, and\n  grant SSH access to the test node for live debugging. Not for\n  merging.\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/fcad129cedf2c69357bb4b411edbae3d42da1e6c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/fcad129cedf2c69357bb4b411edbae3d42da1e6c"}]},"branch":"refs/heads/master"},"addf2e70965a971724d12e97b323b3d56f6c1511":{"kind":"REWORK","_number":6,"created":"2026-09-25 13:08:59.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/6"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 13:08:41.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nInvestigate functional job timeouts caused by a stestr worker getting\npermanently stuck.\n\nRoot cause: TestOVNFunctionalBase.stop() only stops the OVN NB/SB IDL\nconnection\u0027s run() thread. It never shuts down the connection\u0027s\nnotify_loop thread (ovsdbapp.event.RowEventHandler), which oslo_log\nonly shuts down via atexit, i.e. once per worker process rather than\nonce per test. That thread (and the fd it holds) survives every test\nthat created it. Separately, oslo_log.log.setup() removes the\nprevious test\u0027s log FileHandler from the root logger on every call\nbut never closes it, leaking one more fd per test. Because a stestr\nworker runs hundreds of tests sequentially in the same process, both\nleaks accumulate over the worker\u0027s whole lifetime until the open-fd\ncount crosses select()\u0027s hard 1024 FD_SETSIZE limit. At that point\nthe next OVN IDL connection attempt fails with \"ValueError:\nfiledescriptor out of range in select()\", which retries forever\n(intentionally, to tolerate a genuinely down OVSDB in production) and\nhangs the worker, and therefore the whole job, instead of just\nfailing that one test.\n\nThis also explains why the hang is seen on 4-CPU nodes but not on\n8-CPU nodes: stestr concurrency defaults to nproc, so a 4-CPU node\nruns fewer, longer-lived workers that each run roughly twice as many\ntests, and so accumulate roughly twice the leaked fds by the time the\nsuite finishes.\n\nA run with both leaks fixed still hit the same \"filedescriptor out of\nrange in select()\" wall, just later. The remaining piece is in\novs.poller: Poller always multiplexes every OVSDB IDL connection\n(both the persistent run() loop and new-connection setup) through\nselect.select() (SelectPoll \u003d _SelectSelect). The \"use the real\nselect.poll() when eventlet/gevent aren\u0027t monkey-patching select\"\nalternative that _SelectSelect\u0027s own docstring describes is dead code\nin ovs.poller: it is never actually wired up, so SelectPoll is always\nthe select()-based emulation regardless of whether eventlet is in\nuse. select.select() enforces the C library\u0027s FD_SETSIZE (1024)\nceiling on any fd *number* it is given, not just on the count of open\nfds, so even a much slower leak (or none at all, just a long test\nrun\u0027s natural fd churn) eventually pushes some fd\u0027s number past 1024\nand hits the same permanently-stuck retry loop. Since this job\ndoesn\u0027t use eventlet/gevent (OSKEN_HUB_TYPE\u003dnative), switch\novs.poller.SelectPoll to the real, uncapped select.poll()\nimplementation, which ovs.poller\u0027s own POLLIN/POLLOUT/POLLERR/\nPOLLHUP/POLLNVAL constants are already defined to be a drop-in\nreplacement for.\n\nWith that ceiling removed, per-test open-fd/thread instrumentation on\na live run still showed the underlying leak itself is real and\nongoing: multiple distinct Connection.run() threads (not just\nnotify_loop threads) alive at once for the same worker across\ndifferent tests. notify_handler.shutdown() is fire-and-forget (it\njust queues a STOP_EVENT, never joins notify_thread), and\nConnection.stop(timeout\u003d10) joins its run() thread but silently\nreturns False *without raising* if that join times out, so a stuck\nrun() thread (and the socket its idl.close() never got to run for)\nleaks invisibly. stop() now joins notify_thread itself after calling\nshutdown() and checks ovsdb_connection.stop()\u0027s return value, logging\na WARNING with the test id whenever either one doesn\u0027t actually\nfinish in time, to turn this from a silent leak into an identifiable\none.\n\nChanges:\n- neutron/tests/functional/base.py: TestOVNFunctionalBase.stop() now\n  calls notify_handler.shutdown() for both the NB and SB IDLs before\n  ovsdb_connection.stop(), joins/checks that each actually completed,\n  and logs a warning (with the test id) instead of silently\n  swallowing a failure or timeout.\n- neutron/tests/functional/base.py: switch ovs.poller.SelectPoll to\n  the real select.poll() instead of the select()-based emulation, to\n  remove the FD_SETSIZE\u003d1024 ceiling on OVSDB IDL connections.\n- neutron/tests/functional/base.py: add per-test open-fd/thread count\n  instrumentation to BaseLoggingTestCase, writing one\n  open-fds-worker-\u003cpid\u003e.log per stestr worker under DEFAULT_LOG_DIR,\n  to make any fd/thread leak visible directly from collected job\n  logs.\n- neutron/tests/base.py: setup_test_logging() now closes the previous\n  test\u0027s log FileHandler once oslo_log.log.setup() has replaced it,\n  instead of leaking it.\n- zuul.d/project.yaml, zuul.d/base.yaml,\n  playbooks/configure_functional_job.yaml: CI-only scaffolding for\n  iterating on this investigation - restrict check to just\n  neutron-functional (with retries), shorten the job timeout, and\n  grant SSH access to the test node for live debugging. Not for\n  merging.\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/addf2e70965a971724d12e97b323b3d56f6c1511"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/addf2e70965a971724d12e97b323b3d56f6c1511"}]},"branch":"refs/heads/master"},"63778753a1ba21c8dd60c0f771fe718c1d88e528":{"kind":"REWORK","_number":7,"created":"2026-09-28 05:07:54.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/7"}}},"commit":{"parents":[{"commit":"47e41a2a784d24b1cc9b94339e028dae6e68ccd0","subject":"Merge \"Replace reference to legacy security group API in nova\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/47e41a2a784d24b1cc9b94339e028dae6e68ccd0"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-28 04:08:22.000000000","tz":330},"subject":"[DNM] Check FT timeout issue","message":"[DNM] Check FT timeout issue\n\nInvestigate functional job timeouts caused by a stestr worker getting\npermanently stuck.\n\nRoot cause: TestOVNFunctionalBase.stop() only stops the OVN NB/SB IDL\nconnection\u0027s run() thread. It never shuts down the connection\u0027s\nnotify_loop thread (ovsdbapp.event.RowEventHandler), which oslo_log\nonly shuts down via atexit, i.e. once per worker process rather than\nonce per test. That thread (and the fd it holds) survives every test\nthat created it. Separately, oslo_log.log.setup() removes the\nprevious test\u0027s log FileHandler from the root logger on every call\nbut never closes it, leaking one more fd per test. Because a stestr\nworker runs hundreds of tests sequentially in the same process, both\nleaks accumulate over the worker\u0027s whole lifetime until the open-fd\ncount crosses select()\u0027s hard 1024 FD_SETSIZE limit. At that point\nthe next OVN IDL connection attempt fails with \"ValueError:\nfiledescriptor out of range in select()\", which retries forever\n(intentionally, to tolerate a genuinely down OVSDB in production) and\nhangs the worker, and therefore the whole job, instead of just\nfailing that one test.\n\nThis also explains why the hang is seen on 4-CPU nodes but not on\n8-CPU nodes: stestr concurrency defaults to nproc, so a 4-CPU node\nruns fewer, longer-lived workers that each run roughly twice as many\ntests, and so accumulate roughly twice the leaked fds by the time the\nsuite finishes.\n\nA run with both leaks fixed still hit the same \"filedescriptor out of\nrange in select()\" wall, just later. The remaining piece is in\novs.poller: Poller always multiplexes every OVSDB IDL connection\n(both the persistent run() loop and new-connection setup) through\nselect.select() (SelectPoll \u003d _SelectSelect). The \"use the real\nselect.poll() when eventlet/gevent aren\u0027t monkey-patching select\"\nalternative that _SelectSelect\u0027s own docstring describes is dead code\nin ovs.poller: it is never actually wired up, so SelectPoll is always\nthe select()-based emulation regardless of whether eventlet is in\nuse. select.select() enforces the C library\u0027s FD_SETSIZE (1024)\nceiling on any fd *number* it is given, not just on the count of open\nfds, so even a much slower leak (or none at all, just a long test\nrun\u0027s natural fd churn) eventually pushes some fd\u0027s number past 1024\nand hits the same permanently-stuck retry loop. Since this job\ndoesn\u0027t use eventlet/gevent (OSKEN_HUB_TYPE\u003dnative), switch\novs.poller.SelectPoll to the real, uncapped select.poll()\nimplementation, which ovs.poller\u0027s own POLLIN/POLLOUT/POLLERR/\nPOLLHUP/POLLNVAL constants are already defined to be a drop-in\nreplacement for.\n\nWith that ceiling removed, per-test open-fd/thread instrumentation on\na live run still showed the underlying leak itself is real and\nongoing: multiple distinct Connection.run() threads (not just\nnotify_loop threads) alive at once for the same worker across\ndifferent tests. notify_handler.shutdown() is fire-and-forget (it\njust queues a STOP_EVENT, never joins notify_thread), and\nConnection.stop(timeout\u003d10) joins its run() thread but silently\nreturns False *without raising* if that join times out, so a stuck\nrun() thread (and the socket its idl.close() never got to run for)\nleaks invisibly. stop() now joins notify_thread itself after calling\nshutdown() and checks ovsdb_connection.stop()\u0027s return value, logging\na WARNING with the test id whenever either one doesn\u0027t actually\nfinish in time, to turn this from a silent leak into an identifiable\none.\n\nWith that instrumentation live in CI, two completed (SUCCESS) builds\nfrom the same buildset each logged exactly 13 \"notify_thread did not\nstop within 10s\" warnings and 0 ovsdb_connection.stop() timeouts, with\n12 of the 13 affected tests identical across both builds\n(TestRouter.test_gateway_chassis_*/test_schedule_unhosted_gateways_\nsingle_transaction/test_create_router_multiple_gw_ports_ecmp,\nTestVirtualPorts.*, TestOVNClient.test_create_router_port_multiple_\nrouters). That determinism across independent builds/nodes rules out\nnode-speed/contention as the cause: notify_loop is failing to exit\nwithin 10s for a small, identifiable, repeatable set of tests, not\nrandomly. In the TestRouter tests, notify_loop is busy immediately\nbefore the timeout repeatedly hitting \"ReferenceError: weakly-\nreferenced object no longer exists\" in ChassisBandwidthConfigEvent.run\n(placement.py) -- OVNClientPlacementExtension is a singleton that\noutlives any one test and caches a stale reference to a previous\ntest\u0027s already-destroyed plugin. In the TestVirtualPorts case there is\nno exception at all: the log goes completely silent for exactly the\n10s join window right up to the warning, which looks like a genuine\nstall rather than a large backlog being drained. Since neither case is\nconclusively explained by the logs alone, stop() now also captures and\nlogs each stuck thread\u0027s live stack (via sys._current_frames()) when a\njoin times out, to get a definitive answer from the next CI run\ninstead of guessing further.\n\nChanges:\n- neutron/tests/functional/base.py: TestOVNFunctionalBase.stop() now\n  calls notify_handler.shutdown() for both the NB and SB IDLs before\n  ovsdb_connection.stop(), joins/checks that each actually completed,\n  and logs a warning (with the test id and the stuck thread\u0027s live\n  stack) instead of silently swallowing a failure or timeout.\n- neutron/tests/functional/base.py: switch ovs.poller.SelectPoll to\n  the real select.poll() instead of the select()-based emulation, to\n  remove the FD_SETSIZE\u003d1024 ceiling on OVSDB IDL connections.\n- neutron/tests/functional/base.py: add per-test open-fd/thread count\n  instrumentation to BaseLoggingTestCase, writing one\n  open-fds-worker-\u003cpid\u003e.log per stestr worker under DEFAULT_LOG_DIR,\n  to make any fd/thread leak visible directly from collected job\n  logs.\n- neutron/tests/base.py: setup_test_logging() now closes the previous\n  test\u0027s log FileHandler once oslo_log.log.setup() has replaced it,\n  instead of leaking it.\n- zuul.d/project.yaml, zuul.d/base.yaml,\n  playbooks/configure_functional_job.yaml: CI-only scaffolding for\n  iterating on this investigation - restrict check to just\n  neutron-functional (with retries), shorten the job timeout, and\n  grant SSH access to the test node for live debugging. Not for\n  merging.\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nAssisted-By: Claude\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/63778753a1ba21c8dd60c0f771fe718c1d88e528"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/63778753a1ba21c8dd60c0f771fe718c1d88e528"}]},"branch":"refs/heads/master"},"d4e58301b94d50f8ccae5b3db1186073dba41c91":{"kind":"REWORK","_number":8,"created":"2026-09-28 07:49:32.000000000","uploader":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"ref":"refs/changes/03/1007403/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/03/1007403/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/03/1007403/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/03/1007403/8"}}},"commit":{"parents":[{"commit":"b1d0a8a53c087b99083be081a27886c7d894602b","subject":"Merge \"[bgp] Set OVN_BRANCH to v26.03.3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/b1d0a8a53c087b99083be081a27886c7d894602b"}]}],"author":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-25 04:39:16.000000000","tz":330},"committer":{"name":"Yatin Karel","email":"ykarel@redhat.com","date":"2026-09-28 07:21:35.000000000","tz":330},"subject":"Fix OVN functional job hang from OVSDB IDL connection fd leaks","message":"Fix OVN functional job hang from OVSDB IDL connection fd leaks\n\nTestOVNFunctionalBase.stop() only stopped the OVN NB/SB IDL\nconnection\u0027s run() thread. It never shut down the connection\u0027s\nnotify_loop thread (ovsdbapp.event.RowEventHandler), which oslo_log\nonly shuts down via atexit, i.e. once per worker process rather than\nonce per test. That thread (and the fd it holds) survived every test\nthat created it. Separately, oslo_log.log.setup() removes the\nprevious test\u0027s log FileHandler from the root logger on every call\nbut never closes it, leaking one more fd per test. Because a stestr\nworker runs hundreds of tests sequentially in the same process, both\nleaks accumulated over the worker\u0027s whole lifetime until the open-fd\ncount crossed select()\u0027s hard 1024 FD_SETSIZE limit. At that point\nthe next OVN IDL connection attempt failed with \"ValueError:\nfiledescriptor out of range in select()\", which retries forever\n(intentionally, to tolerate a genuinely down OVSDB in production) and\nhung the worker, and therefore the whole job, instead of just failing\nthat one test.\n\nThis also explains why the hang is seen on 4-CPU nodes but not on\n8-CPU nodes: stestr concurrency defaults to nproc, so a 4-CPU node\nruns fewer, longer-lived workers that each run roughly twice as many\ntests, and so accumulate roughly twice the leaked fds by the time the\nsuite finishes.\n\nFixing both leaks still hit the same \"filedescriptor out of range in\nselect()\" wall, just later. The remaining piece is in ovs.poller:\nPoller always multiplexes every OVSDB IDL connection (both the\npersistent run() loop and new-connection setup) through\nselect.select() (SelectPoll \u003d _SelectSelect). The \"use the real\nselect.poll() when eventlet/gevent aren\u0027t monkey-patching select\"\nalternative that _SelectSelect\u0027s own docstring describes is dead code\nin ovs.poller: it is never actually wired up, so SelectPoll is always\nthe select()-based emulation regardless of whether eventlet is in\nuse. select.select() enforces the C library\u0027s FD_SETSIZE (1024)\nceiling on any fd *number* it is given, not just on the count of open\nfds, so even a much slower leak (or none at all, just a long test\nrun\u0027s natural fd churn) eventually pushes some fd\u0027s number past 1024\nand hits the same permanently-stuck retry loop. Since this job\ndoesn\u0027t use eventlet/gevent (OSKEN_HUB_TYPE\u003dnative), switch\novs.poller.SelectPoll to the real, uncapped select.poll()\nimplementation, which ovs.poller\u0027s own POLLIN/POLLOUT/POLLERR/\nPOLLHUP/POLLNVAL constants are already defined to be a drop-in\nreplacement for.\n\nnotify_handler.shutdown() is also fire-and-forget (it just queues a\nSTOP_EVENT, never joins notify_thread), and Connection.stop(timeout)\njoins its run() thread but silently returns False *without raising*\nif that join times out, so a stuck run() thread (and the socket its\nidl.close() never got to run for) could leak invisibly. stop() now\njoins notify_thread itself after calling shutdown() and checks\novsdb_connection.stop()\u0027s return value, logging a WARNING with the\ntest id whenever either one doesn\u0027t actually finish in time, turning\na silent leak into an identifiable one.\n\nVerified against several CI runs with all three fixes applied: no\nrun hit the fd-ceiling hang. A small number of \"did not stop within\nNs\" warnings still showed up on some runs; per-test open-fd/thread\ninstrumentation and live thread-stack captures on those warnings\ntraced them to bounded, legitimate work occasionally running on the\nnotify_loop thread (tenacity-bounded retry sleeps, an OVSDB\ntransaction commit blocking on its reply queue, or a slow DB query),\nnot to an actual leak or deadlock. The join timeout is raised from\n10s to 30s to give that legitimate work enough headroom to finish\nwithout emitting a false-positive warning.\n\nChanges:\n- neutron/tests/functional/base.py: TestOVNFunctionalBase.stop() now\n  calls notify_handler.shutdown() for both the NB and SB IDLs before\n  ovsdb_connection.stop(), joins/checks that each actually completed\n  within 30s, and logs a warning with the test id instead of\n  silently swallowing a failure or timeout.\n- neutron/tests/functional/base.py: switch ovs.poller.SelectPoll to\n  the real select.poll() instead of the select()-based emulation, to\n  remove the FD_SETSIZE\u003d1024 ceiling on OVSDB IDL connections.\n- neutron/tests/functional/base.py: add per-test open-fd/thread count\n  instrumentation to BaseLoggingTestCase, writing one\n  open-fds-worker-\u003cpid\u003e.log per stestr worker under DEFAULT_LOG_DIR,\n  to make any future fd/thread leak visible directly from collected\n  job logs.\n- neutron/tests/base.py: setup_test_logging() now closes the previous\n  test\u0027s log FileHandler once oslo_log.log.setup() has replaced it,\n  instead of leaking it.\n\nRelated-Bug: #2080199\nRelated-Bug: #2110004\nRelated-Bug: #2167755\nChange-Id: I79e73cdf17a5d6a22e10b177eb74da549c4af0af\nSigned-off-by: Yatin Karel \u003cykarel@redhat.com\u003e\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/d4e58301b94d50f8ccae5b3db1186073dba41c91"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/d4e58301b94d50f8ccae5b3db1186073dba41c91"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"}},{"label":"Review-Priority","status":"MAY","applied_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
