[Expired for neutron because there has been no activity for 60 days.]

** Changed in: neutron
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1471966

Title:
  Invalid json types cause stacktrace

Status in neutron:
  Expired

Bug description:
  Incorrect json input cause error instead of being invalidated
  properly:

  Type error in dns_nameservers raise keyerror:

  ERROR neutron.api.v2.resource [req-be58f6e1-db2f-4b2e-9620-afb49bdd4552 demo 
d1da3f8632e3413b915eda78899806d7] create failed
  Traceback (most recent call last):
    File "/opt/stack/neutron/neutron/api/v2/resource.py", line 87, in resource
      result = method(request=request, **args)
    File "/opt/stack/neutron/neutron/api/v2/base.py", line 379, in create
      allow_bulk=self._allow_bulk)
    File "/opt/stack/neutron/neutron/api/v2/base.py", line 637, in 
prepare_request_body
      attr_vals['validate'][rule])
    File "/opt/stack/neutron/neutron/api/v2/attributes.py", line 275, in 
_validate_nameservers
      msg = _validate_ip_or_hostname(host)
    File "/opt/stack/neutron/neutron/api/v2/attributes.py", line 257, in 
_validate_ip_or_hostname
      name_err = _validate_hostname(host)
    File "/opt/stack/neutron/neutron/api/v2/attributes.py", line 370, in 
_validate_hostname
      trimmed = data if data[-1] != '.' else data[:-1]
  TRACE neutron.api.v2.resource KeyError: -1
  TRACE neutron.api.v2.resource·

  Steps to reproduce:
  token=$(keystone token-get | grep ' id ' | awk '{ print $4}')
  curl -H "X-Auth-Token:${token}"  -H 'Content-Type:application/json' -X POST 
http://localhost:9696//v2.0/subnets.json \
   -d '{"subnet": {"dns_nameservers": [{}], "cidr": "192.168.0.1/24", 
"network_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "ip_version": "4"}}'; echo

  Various sql errors with security-group params:

  Trace:
  ERROR neutron.api.v2.resource [req-0f32e171-029c-465a-872e-d3533fc191c7 demo 
4a2f46b3469240589af5db1ffd3e56e7] create failed
  TRACE neutron.api.v2.resource Traceback (most recent call last):
  TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/resource.py", line 87, in resource
  TRACE neutron.api.v2.resource     result = method(request=request, **args)
  TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 448, in create
  TRACE neutron.api.v2.resource     obj = obj_creator(request.context, **kwargs)
  TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/securitygroups_db.py", line 137, in 
create_security_group
  TRACE neutron.api.v2.resource     context.session.add(egress_rule)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 447, in 
__exit__
  TRACE neutron.api.v2.resource     self.rollback()
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in 
__exit__
  TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 444, in 
__exit__
  TRACE neutron.api.v2.resource     self.commit()
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 354, in 
commit
  TRACE neutron.api.v2.resource     self._prepare_impl()
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 334, in 
_prepare_impl
  TRACE neutron.api.v2.resource     self.session.flush()
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1818, in 
flush
  TRACE neutron.api.v2.resource     self._flush(objects)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1936, in 
_flush
  TRACE neutron.api.v2.resource     
transaction.rollback(_capture_exception=True)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in 
__exit__
  TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1900, in 
_flush
  TRACE neutron.api.v2.resource     flush_context.execute()
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in 
execute
  TRACE neutron.api.v2.resource     rec.execute(self)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 525, in 
execute
  TRACE neutron.api.v2.resource     uow
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 64, in 
save_obj
  TRACE neutron.api.v2.resource     table, insert)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 541, in 
_emit_insert_statements
  TRACE neutron.api.v2.resource     execute(statement, multiparams)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in 
execute
  TRACE neutron.api.v2.resource     params)
  TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/sq
  TRACE neutron.api.v2.resource     compiled_sql, distilled_params
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in 
_execute_context
  TRACE neutron.api.v2.resource     context)
  TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py",
 line 125, in _handle_dbapi_exception
  TRACE neutron.api.v2.resource     six.reraise(type(newraise), newraise, 
sys.exc_info()[2])
  TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py",
 line 102, in _handle_dbapi_exception
  TRACE neutron.api.v2.resource     per_fn = fn(ctx)
  TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/exc_filters.py", 
line 323, in handler
  TRACE neutron.api.v2.resource     context.is_disconnect)
  TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/exc_filters.py", 
line 278, in _raise_for_remaining_DBAPIError
  TRACE neutron.api.v2.resource     raise exception.DBError(error)
  TRACE neutron.api.v2.resource DBError: (ProgrammingError) (1064, "You have an 
error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near '), '')' at line 1") 'INSERT 
INTO securitygroups (tenant_id, id, name, description) VALUES (%s, %s, %s, %s)' 
('4a2f46b3469240589af5db1ffd3e56e7', '35ba859f-475d-4afb-8c36-a4d3b434aeb9', 
[], '')

  Steps to reproduce:
  token=$(keystone token-get | grep ' id ' | awk '{ print $4}')
  curl -H "X-Auth-Token:${token}"  -H 'Content-Type:application/json' -X POST 
http://10.43.97.9:9696//v2.0/security-groups.json   -d '{"security_group": 
{"name": []}}'; echo

  
  Attribute error when security group name is list:

  Trace:
  ERROR neutron.api.v2.resource [req-3dc98a3c-6af2-498e-87bb-e09de31f0266 ] 
create failed
  TRACE neutron.api.v2.resource Traceback (most recent call last):
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 83, in 
resource
  TRACE neutron.api.v2.resource     result = method(request=request, **args)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 391, in create
  TRACE neutron.api.v2.resource     allow_bulk=self._allow_bulk)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 652, in 
prepare_request_body
  TRACE neutron.api.v2.resource     attr_vals['validate'][rule])
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/extensions/securitygroup.py", line 
177, in _validate_name_not_default
  TRACE neutron.api.v2.resource     if data.lower() == "default":
  TRACE neutron.api.v2.resource AttributeError: 'list' object has no attribute 
'lower'

  Steps to reproduce:
  token=$(keystone token-get | grep ' id ' | awk '{ print $4}')
  curl -H "X-Auth-Token:${token}" -H 'Content-Type:application/json' -H 
'Accept:application/json' -X POST 
http://localhost:9696/v2.0/security-groups.json -d '{"security_group": {"name": 
[]}}'

  
  Typerror when security group id is a dict

  Trace:
  TRACE neutron.api.v2.resource Traceback (most recent call last):
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 83, in 
resource
  TRACE neutron.api.v2.resource     result = method(request=request, **args)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 461, in create
  TRACE neutron.api.v2.resource     obj = obj_creator(request.context, **kwargs)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/db/securitygroups_rpc_base.py", line 
73, in create_security_group_rule
  TRACE neutron.api.v2.resource     bulk_rule)[0]
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/db/securitygroups_db.py", line 290, 
in create_security_group_rule_bulk_native
  TRACE neutron.api.v2.resource     context, security_group_rule)
  TRACE neutron.api.v2.resource   File 
"/usr/lib/python2.7/site-packages/neutron/db/securitygroups_db.py", line 365, 
in _validate_security_group_rules
  TRACE neutron.api.v2.resource     new_rules.add(rule['security_group_id'])
  TRACE neutron.api.v2.resource TypeError: unhashable type: 'dict'

  Steps to reproduce:
  token=$(keystone token-get | grep ' id ' | awk '{ print $4}')
  curl -H "X-Auth-Token:${token}" -H 'Content-Type:application/json' -H 
'Accept:application/json' -X POST 
http://localhost:9696//v2.0/security-group-rules.json     -d 
'{"security_group_rule": {"direction": "egress", "security_group_id": {}}}'

  
  Impact:
  Raise random exception instead of NeutronError

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1471966/+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

Reply via email to