Reviewed: https://review.opendev.org/758472 Committed: https://git.openstack.org/cgit/openstack/ovn-octavia-provider/commit/?id=5b0715d96700d1c288f601b3ecb2cad507c2c134 Submitter: Zuul Branch: master
commit 5b0715d96700d1c288f601b3ecb2cad507c2c134 Author: Terry Wilson <[email protected]> Date: Thu Oct 15 12:53:36 2020 -0500 Fix leaked file descriptors by cleaning up objects A reference to the ovsdbapp Connection object is stored on the the API impl class and it is causing the object to stick around and its pipe fds to never close. Ultimately, python-ovs's call to select() is limited to 1024 file descriptors and will eventually error out. This deletes the connection and api objects explicitly when we are done with them. Change-Id: I97b27eaa293fb161724d34da88b4398f8b590c33 Co-authored-by: Brian Haley <[email protected]> Closes-Bug: #1894136 ** Changed in: neutron Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1894136 Title: [OVN Octavia Provider] OVN provider fails during listener delete Status in neutron: Fix Released Bug description: The OVN provider is consistently failing during a listener delete as part of the member API tempest test tear down with a 'filedescriptor out of range in select()' error. o-api logs snippet: Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn [None req-9201aee8-9a5b-460c-bf8b-c6408d20aec7 tempest-MemberAPITest-903346660 tempest-MemberAPITest-903346660] OVS database connection to OVN_Northbound failed with error: 'filedescriptor out of range in select()'. Verify that the OVS and OVN services are available and that the 'ovn_nb_connection' and 'ovn_sb_connection' configuration options are correct.: ValueError: filedescriptor out of range in select() Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn Traceback (most recent call last): Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/ovsdb/impl_idl_ovn.py", line 61, in start_connection Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn self.ovsdb_connection.start() Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn File "/usr/local/lib/python3.6/dist-packages/ovsdbapp/backend/ovs_idl/connection.py", line 79, in start Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn idlutils.wait_for_change(self.idl, self.timeout) Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn File "/usr/local/lib/python3.6/dist-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 201, in wait_for_change Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn ovs_poller.block() Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn File "/usr/local/lib/python3.6/dist-packages/ovs/poller.py", line 231, in block Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn events = self.poll.poll(self.timeout) Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn File "/usr/local/lib/python3.6/dist-packages/ovs/poller.py", line 140, in poll Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn timeout) Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn ValueError: filedescriptor out of range in select() Sep 03 15:44:05.171297 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR ovn_octavia_provider.ovsdb.impl_idl_ovn Sep 03 15:44:05.172746 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR octavia.api.drivers.driver_factory [None req-9201aee8-9a5b-460c-bf8b-c6408d20aec7 tempest-MemberAPITest-903346660 tempest-MemberAPITest-903346660] Unable to load provider driver ovn due to: OVS database connection to OVN_Northbound failed with error: 'filedescriptor out of range in select()'. Verify that the OVS and OVN services are available and that the 'ovn_nb_connection' and 'ovn_sb_connection' configuration options are correct.: ovn_octavia_provider.ovsdb.impl_idl_ovn.OvsdbConnectionUnavailable: OVS database connection to OVN_Northbound failed with error: 'filedescriptor out of range in select()'. Verify that the OVS and OVN services are available and that the 'ovn_nb_connection' and 'ovn_sb_connection' configuration options are correct. Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ERROR wsme.api [None req-9201aee8-9a5b-460c-bf8b-c6408d20aec7 tempest-MemberAPITest-903346660 tempest-MemberAPITest-903346660] Server-side error: "Provider 'ovn' was not found.". Detail: Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: Traceback (most recent call last): Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/ovsdb/impl_idl_ovn.py", line 61, in start_connection Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: self.ovsdb_connection.start() Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/ovsdbapp/backend/ovs_idl/connection.py", line 79, in start Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: idlutils.wait_for_change(self.idl, self.timeout) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 201, in wait_for_change Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ovs_poller.block() Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/ovs/poller.py", line 231, in block Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: events = self.poll.poll(self.timeout) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/ovs/poller.py", line 140, in poll Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: timeout) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ValueError: filedescriptor out of range in select() Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: During handling of the above exception, another exception occurred: Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: Traceback (most recent call last): Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/octavia/octavia/api/drivers/driver_factory.py", line 44, in get_driver Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: invoke_on_load=True).driver Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/stevedore/driver.py", line 61, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: warn_on_missing_entrypoint=warn_on_missing_entrypoint Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/stevedore/named.py", line 81, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: verify_requirements) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/stevedore/extension.py", line 233, in _load_plugins Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: self._on_load_failure_callback(self, ep, err) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/stevedore/extension.py", line 225, in _load_plugins Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: verify_requirements, Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/stevedore/named.py", line 158, in _load_one_plugin Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: verify_requirements, Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/stevedore/extension.py", line 257, in _load_one_plugin Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: obj = plugin(*invoke_args, **invoke_kwds) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/driver.py", line 42, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: self._ovn_helper = ovn_helper.OvnProviderHelper() Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/helper.py", line 60, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: self.ovn_nbdb_api = self.ovn_nbdb.start() Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/ovsdb/impl_idl_ovn.py", line 174, in start Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: return impl_idl_ovn.OvsdbNbOvnIdl(self.conn) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/ovsdb/impl_idl_ovn.py", line 118, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: super(OvsdbNbOvnIdl, self).__init__(connection) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/ovsdb/impl_idl_ovn.py", line 57, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: super(Backend, self).__init__(connection) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 35, in __init__ Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: self.start_connection(connection) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/ovn-octavia-provider/ovn_octavia_provider/ovsdb/impl_idl_ovn.py", line 66, in start_connection Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: raise connection_exception Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: ovn_octavia_provider.ovsdb.impl_idl_ovn.OvsdbConnectionUnavailable: OVS database connection to OVN_Northbound failed with error: 'filedescriptor out of range in select()'. Verify that the OVS and OVN services are available and that the 'ovn_nb_connection' and 'ovn_sb_connection' configuration options are correct. Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: During handling of the above exception, another exception occurred: Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: Traceback (most recent call last): Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/usr/local/lib/python3.6/dist-packages/wsmeext/pecan.py", line 84, in callfunction Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: result = f(self, *args, **kwargs) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/octavia/octavia/api/v2/controllers/listener.py", line 632, in delete Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: driver = driver_factory.get_driver(provider) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: File "/opt/stack/octavia/octavia/api/drivers/driver_factory.py", line 49, in get_driver Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: raise exceptions.ProviderNotFound(prov=provider) Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: octavia.common.exceptions.ProviderNotFound: Provider 'ovn' was not found. Sep 03 15:44:05.175074 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: : octavia.common.exceptions.ProviderNotFound: Provider 'ovn' was not found. Sep 03 15:44:05.178879 ubuntu-bionic-inap-mtl01-0019624710 [email protected][10087]: [pid: 10089|app: 0|req: 1109/2281] 198.72.124.16 () {56 vars in 1234 bytes} [Thu Sep 3 15:44:04 2020] DELETE /load-balancer/v2.0/lbaas/listeners/3537f411-5ab3-48c8-9669-c9fa1f40fee9 => generated 90 bytes in 447 msecs (HTTP/1.1 501) 4 headers in 169 bytes (1 switches on core 0) To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1894136/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

