[Yahoo-eng-team] [Bug 1575402] [NEW] VPNaaS update NAT rules can generate stack trace
Public bug reported: neutron-vpn-agent can generate stack traces with AttributeError: 'NoneType' object has no attribute 'ipv4' in two different locations in ipsec.py, in add_nat_rule() and remove_nat_rule(), during sync() operations while site connections are being created. Here is an example stack trace (based on a Liberty distribution, but I believe this is still an issue in master/newton): 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher Traceback (most recent call last): 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher executor_callback)) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher executor_callback) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 129, in _do_dispatch 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/neutron_vpnaas/services/vpn/device_drivers/ipsec.py", line 675, in vpnservice_updated 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher self.sync(context, [router] if router else []) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 271, in inner 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher return f(*args, **kwargs) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/neutron_vpnaas/services/vpn/device_drivers/ipsec.py", line 830, in sync 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher self._delete_vpn_processes(sync_router_ids, router_ids) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/neutron_vpnaas/services/vpn/device_drivers/ipsec.py", line 860, in _delete_vpn_processes 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher self.destroy_process(process_id) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/neutron_vpnaas/services/vpn/device_drivers/ipsec.py", line 728, in destroy_process 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher self._update_nat(vpnservice, self.remove_nat_rule) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/neutron_vpnaas/services/vpn/device_drivers/ipsec.py", line 664, in _update_nat 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher top=True) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/neutron_vpnaas/services/vpn/device_drivers/ipsec.py", line 629, in remove_nat_rule 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher iptables_manager.ipv4['nat'].remove_rule(chain, rule, top=top) 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher AttributeError: 'NoneType' object has no attribute 'ipv4' 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1575402 Title: VPNaaS update NAT rules can generate stack trace Status in neutron: New Bug description: neutron-vpn-agent can generate stack traces with AttributeError: 'NoneType' object has no attribute 'ipv4' in two different locations in ipsec.py, in add_nat_rule() and remove_nat_rule(), during sync() operations while site connections are being created. Here is an example stack trace (based on a Liberty distribution, but I believe this is still an issue in master/newton): 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher Traceback (most recent call last): 2016-04-26 20:26:27.894 28022 ERROR oslo_messaging.rpc.dispatcher File "/opt/stack/venv/neutron-20160426T025546Z/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply 2016-04-26 2
[Yahoo-eng-team] [Bug 1544349] [NEW] neutron-vpnaas db migration breaks in MySQL 5.6
Public bug reported: Starting in MySQL 5.6, it is illegal to alter a column that is subject to a Foreign Key constraint, and any migration doing such will fail. Other projects (I have found examples in Barbican and Trove) work around this by removing the constraint, performing the ALTER, and reinstating the constraint. ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1544349 Title: neutron-vpnaas db migration breaks in MySQL 5.6 Status in neutron: New Bug description: Starting in MySQL 5.6, it is illegal to alter a column that is subject to a Foreign Key constraint, and any migration doing such will fail. Other projects (I have found examples in Barbican and Trove) work around this by removing the constraint, performing the ALTER, and reinstating the constraint. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1544349/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp
[Yahoo-eng-team] [Bug 1494021] [NEW] tests.unit.quota.test_resource can randomly fail
Public bug reported: The TestTrackedResource class is designed to inject random failures into the gate. It generates random numbers within the range of 0..1, and will fail if it generates duplicate random numbers during its run. class TestTrackedResource(testlib_api.SqlTestCaseLight): def _add_data(self, tenant_id=None): session = db_api.get_session() with session.begin(): tenant_id = tenant_id or self.tenant_id session.add(test_quota.MehModel( meh='meh_%d' % random.randint(0, 1), tenant_id=tenant_id)) session.add(test_quota.MehModel( meh='meh_%d' % random.randint(0, 1), tenant_id=tenant_id)) Because the test repeatedly calls _add_data(), if the calls to randint() ever generate the same number during a test, it will fail. Aggregated over hundreds, or sometimes thousands, of test runs per day, I would estimate that this could cause several unnecessary check/gate failures in a busy day. I propose changing random.randint() to uuid.uuid4(), which gives us a much larger random number space and a much smaller probability of collision. ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1494021 Title: tests.unit.quota.test_resource can randomly fail Status in neutron: New Bug description: The TestTrackedResource class is designed to inject random failures into the gate. It generates random numbers within the range of 0..1, and will fail if it generates duplicate random numbers during its run. class TestTrackedResource(testlib_api.SqlTestCaseLight): def _add_data(self, tenant_id=None): session = db_api.get_session() with session.begin(): tenant_id = tenant_id or self.tenant_id session.add(test_quota.MehModel( meh='meh_%d' % random.randint(0, 1), tenant_id=tenant_id)) session.add(test_quota.MehModel( meh='meh_%d' % random.randint(0, 1), tenant_id=tenant_id)) Because the test repeatedly calls _add_data(), if the calls to randint() ever generate the same number during a test, it will fail. Aggregated over hundreds, or sometimes thousands, of test runs per day, I would estimate that this could cause several unnecessary check/gate failures in a busy day. I propose changing random.randint() to uuid.uuid4(), which gives us a much larger random number space and a much smaller probability of collision. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1494021/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp
[Yahoo-eng-team] [Bug 1494003] [NEW] Floating IPs don't work with LBaaS V2 Loadbalancers
Public bug reported: Summary: With LBaaS V2, create a loadbalancer and two member instances. Assign floating IPs to the instances, and to the loadbalancers. The instances are accessible via their FIPS, but the loadbalancer is not. The loadbalancer does work via the its fixed IP. Reproduced in devstack on master as of Wed, Sept 9, 2015. # = BEGIN local.conf = [[local|localrc]] # The name of the RECLONE environment variable is a bit misleading. It doesn't actually # reclone repositories, rather it uses git fetch to make sure the repos are current. RECLONE=True #RECLONE=False # Load the external LBaaS plugin. #enable_plugin neutron-lbaas https://git.openstack.org/openstack /neutron-lbaas stable/kilo enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron- lbaas #enable_plugin neutron-lbaas /media/sf_SharedPyCharm/bug-1483100 /neutron-lbaas DATABASE_PASSWORD=password ADMIN_PASSWORD=password SERVICE_PASSWORD=password SERVICE_TOKEN=password RABBIT_PASSWORD=password # Enable Logging LOGFILE=$DEST/logs/stack.sh.log VERBOSE=True LOG_COLOR=True SCREEN_LOGDIR=$DEST/logs # Pre-requisite ENABLED_SERVICES=rabbit,mysql,key # Horizon #ENABLED_SERVICES+=,horizon # Nova ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"; ENABLED_SERVICES+=,g-api,g-reg # Neutron ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta # Enable LBaaS V2 ENABLED_SERVICES+=,q-lbaasv2 #ENABLED_SERVICES+=,q-vpn # Cinder ENABLED_SERVICES+=,c-api,c-vol,c-sch # enable DVR Q_PLUGIN=ml2 Q_ML2_TENANT_NETWORK_TYPE=vxlan Q_DVR_MODE=dvr_snat LOGFILE=$DEST/logs/stack.sh.log # Old log files are automatically removed after 7 days to keep things neat. Change # the number of days by setting ``LOGDAYS``. LOGDAYS=2 # = END local.conf = # = BEGIN local.sh = #!/usr/bin/env bash set -x # Sample ``local.sh`` that configures two simple webserver instances and sets # up a Neutron LBaaS Version 2 loadbalancer. # Keep track of the DevStack directory TOP_DIR=$(cd $(dirname "$0") && pwd) BOOT_DELAY=60 # Import common functions source ${TOP_DIR}/functions # Use openrc + stackrc for settings source ${TOP_DIR}/stackrc # Destination path for installation ``DEST`` DEST=${DEST:-/opt/stack} # Additional Variables IMAGE_NAME="cirros" SUBNET_NAME="private-subnet" cat > ${TOP_DIR}/webserver.sh < ${TOP_DIR}/webserver-443.sh
[Yahoo-eng-team] [Bug 1483100] [NEW] neutron-lbaas V2 lbaas-member-list returns all members, not just those for the specified pool
Public bug reported: Boot 4 webserver instances. Create two loadbalancer stacks: lb1/listener1/pool1/[member1,member2] lb2/listener2/pool2/[member3,member4] Do "neutron lbaas-member-list pool1" and you will get all 4 instances. Likewise, "neutron lbaas-member-list pool2" will return the same 4 instances. The pool_id is being properly provided to the LBaaS API by the neutron client, but is not being assigned to the filter on the DB query. ** Affects: neutron Importance: Undecided Assignee: Al Miller (al-miller) Status: New ** Changed in: neutron Assignee: (unassigned) => Al Miller (al-miller) ** Description changed: Boot 4 webserver instances. Create two loadbalancer stacks: lb1/listener1/pool1/[member1,member2] lb2/listener2/pool2/[member3,member4] Do "neutron lbaas-member-list pool1" and you will get all 4 instances. Likewise, "neutron lbaas-member-list pool2" will return the same 4 instances. - The pool_id is being properly provided to the API by the neutron client, - but is not being assigned to the filter on the DB query. + The pool_id is being properly provided to the LBaaS API by the neutron + client, but is not being assigned to the filter on the DB query. -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1483100 Title: neutron-lbaas V2 lbaas-member-list returns all members, not just those for the specified pool Status in neutron: New Bug description: Boot 4 webserver instances. Create two loadbalancer stacks: lb1/listener1/pool1/[member1,member2] lb2/listener2/pool2/[member3,member4] Do "neutron lbaas-member-list pool1" and you will get all 4 instances. Likewise, "neutron lbaas-member-list pool2" will return the same 4 instances. The pool_id is being properly provided to the LBaaS API by the neutron client, but is not being assigned to the filter on the DB query. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1483100/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp