Reviewed: https://review.openstack.org/407813 Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=71edbb0d7de06458bb1be345e13841ad4e7c2bb9 Submitter: Jenkins Branch: master
commit 71edbb0d7de06458bb1be345e13841ad4e7c2bb9 Author: Huan Xie <[email protected]> Date: Wed Dec 7 02:13:19 2016 +0000 Support ovsdb-client monitor with remote connection When using XenServer as hypervisor, we found we cannot set ovs agent which runs in compute node with "minimize_polling=True". Because once set it True, the ovs agent will monitor the local ovsdb, but we want it monitor ovsdb in Dom0. This patch is to add support for ovsdb-client to monitor remote connection. Change-Id: Idf2a564e96626dab3c4421a1f9139ed9ffcbcab1 Closes-bug: 1647914 ** 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/1647914 Title: Cannot use minimized_polling when hypervisor is XenServer Status in neutron: Fix Released Bug description: Env: XenServer as hypervisor Neutron ML2 use ovs agent When using XenServer as hypervisor, the ovs agent running in compute node cannot set [agent] minimize_polling = True See related logs: on/api/rpc/callbacks/resource_manager.py:74 2016-12-07 02:28:55.856 INFO neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [req-dfcefef1-efbd-4896-af21-70f6fae0c0b8 None None] Agent initialized successfully, now running... 2016-12-07 02:28:55.857 DEBUG neutron.agent.linux.async_process [req-dfcefef1-efbd-4896-af21-70f6fae0c0b8 None None] Launching async process [ovsdb-client monitor Interface name,ofport,external_ids --format=json]. from (pid=6224) start /opt/stack/neutron/neutron/agent/linux/async_process.py:110 2016-12-07 02:28:55.857 DEBUG neutron.agent.linux.utils [req-dfcefef1-efbd-4896-af21-70f6fae0c0b8 None None] Running command: ['/usr/local/bin/neutron-rootwrap-xen-dom0', '/etc/neutron/rootwrap.conf', 'ovsdb-client', 'monitor', 'Interface', 'name,ofport,external_ids', '--format=json'] from (pid=6224) create_process /opt/stack/neutron/neutron/agent/linux/utils.py:92 2016-12-07 02:28:55.879 DEBUG neutron.agent.linux.utils [req-dfcefef1-efbd-4896-af21-70f6fae0c0b8 None None] Running command: ['ps', '--ppid', '6253', '-o', 'pid='] from (pid=6224) create_process /opt/stack/neutron/neutron/agent/linux/utils.py:92 2016-12-07 02:29:00.863 DEBUG neutron.agent.linux.utils [req-dfcefef1-efbd-4896-af21-70f6fae0c0b8 None None] Running command: ['ps', '--ppid', '6253', '-o', 'pid='] from (pid=6224) create_process /opt/stack/neutron/neutron/agent/linux/utils.py:92 2016-12-07 02:29:00.976 ERROR ryu.lib.hub [req-dfcefef1-efbd-4896-af21-70f6fae0c0b8 None None] hub: uncaught exception: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 54, in _launch return func(*args, **kwargs) File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_ryuapp.py", line 42, in agent_main_wrapper ovs_agent.main(bridge_classes) File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 2154, in main agent.daemon_loop() File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 154, in wrapper return f(*args, **kwargs) File "/opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 2073, in daemon_loop self.ovsdb_monitor_respawn_interval) as pm: File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__ return self.gen.next() File "/opt/stack/neutron/neutron/agent/linux/polling.py", line 35, in get_polling_manager pm.start() File "/opt/stack/neutron/neutron/agent/linux/polling.py", line 57, in start self._monitor.start(block=True) File "/opt/stack/neutron/neutron/agent/linux/ovsdb_monitor.py", line 117, in start while not self.is_active(): File "/opt/stack/neutron/neutron/agent/linux/async_process.py", line 101, in is_active self.pid, self.cmd_without_namespace) File "/opt/stack/neutron/neutron/agent/linux/async_process.py", line 160, in pid run_as_root=self.run_as_root) File "/opt/stack/neutron/neutron/agent/linux/utils.py", line 246, in get_root_helper_child_pid pid = find_child_pids(pid)[0] File "/opt/stack/neutron/neutron/agent/linux/utils.py", line 179, in find_child_pids log_fail_as_error=False) File "/opt/stack/neutron/neutron/agent/linux/utils.py", line 127, in execute _stdout, _stderr = obj.communicate(_process_input) File "/usr/lib/python2.7/subprocess.py", line 799, in communicate return self._communicate(input) File "/usr/lib/python2.7/subprocess.py", line 1403, in _communicate stdout, stderr = self._communicate_with_select(input) File "/usr/lib/python2.7/subprocess.py", line 1504, in _communicate_with_select rlist, wlist, xlist = select.select(read_set, write_set, []) File "/usr/local/lib/python2.7/dist-packages/eventlet/green/select.py", line 86, in select return hub.switch() File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 294, in switch return self.greenlet.switch() Timeout: 5 seconds To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1647914/+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

