[Yahoo-eng-team] [Bug 1575402] [NEW] VPNaaS update NAT rules can generate stack trace

2016-04-26 Thread Al Miller
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

2016-02-10 Thread Al Miller
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

2015-09-09 Thread Al Miller
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

2015-09-09 Thread Al Miller
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

2015-08-09 Thread Al Miller
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