Hi Sachin,

Thanks for filling the bug and for providing a fix for it.

I looked over your fix and I think that at line 1736 from vnc_cfg_types.py 
should also be used obj_ids['uuid'] instead of obj_ids:

cls.addr_mgmt.ipam_delete_notify(obj_ids['uuid'], obj_dict)

Thanks,
Anda

From: Sachin Bansal [mailto:sban...@juniper.net]
Sent: Wednesday, September 20, 2017 1:48 AM
To: Anda Nicolae
Cc: dev@lists.opencontrail.org
Subject: Re: [opencontrail-dev] Python exception in vnc_addr_mgmt.py when 
deleting an IPAM or a network

FYI: I have filed this bug myself: 
https://bugs.launchpad.net/juniperopenstack/+bug/1718311
Also submitted a fix for review: https://review.opencontrail.org/#/c/35746/

Sachin

On Sep 19, 2017, at 11:29 AM, Sachin Bansal 
<sban...@juniper.net<mailto:sban...@juniper.net>> wrote:

Anda,

This looks like recently introduced bug in 3.2 because of an incorrect merge 
resolution. Please file a bug and we will take care of it.

Sachin

On Sep 19, 2017, at 4:44 AM, Anda Nicolae 
<anico...@lenovo.com<mailto:anico...@lenovo.com>> wrote:

Hi all,

I am using Contrail 3.2.5.0.
I've noticed a Python exception logged in contrail-api.log when deleting a 
network or an IPAM:

The above is a description of an error in a Python program.  Here is the call 
trace:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vnc_cfg_api_server/vnc_db.py", line 
323, in _dbe_subscribe_callback
    self._dbe_delete_notification(oper_info)
  File "/usr/lib/python2.7/site-packages/vnc_cfg_api_server/vnc_db.py", line 
425, in _dbe_delete_notification
    r_class.dbe_delete_notification(obj_info, obj_dict)
  File "/usr/lib/python2.7/site-packages/vnc_cfg_api_server/vnc_cfg_types.py", 
line 1475, in dbe_delete_notification
    cls.addr_mgmt.net_delete_notify(obj_ids, obj_dict)
  File "/usr/lib/python2.7/site-packages/vnc_cfg_api_server/vnc_addr_mgmt.py", 
line 785, in net_delete_notify
    if obj_id in self._subnet_objs:
TypeError: unhashable type: 'dict'

In both cases, the error happens when trying to execute the following line from 
vnc_cfg_api_server/vnc_addr_mgmt.py:
if obj_id in self._subnet_objs:

This line appears in the following functions:
net_delete_notify
ipam_delete_notify

I've added some logs and I have noticed that obj_id is a dictionary and it 
can't be a key in the dictionary self._subnet_objs.
The exception appears because a dictionary is mutable in Python and it can't be 
used as a key for another dictionary.

However, even if the exception occurs, the network/IPAM is successfully deleted.

Thanks,
Anda
_______________________________________________
Dev mailing list
Dev@lists.opencontrail.org<mailto:Dev@lists.opencontrail.org>
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.opencontrail.org_mailman_listinfo_dev-5Flists.opencontrail.org&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=4SMc5wJ_FVS46-BSw4dDnrpmjQWP4eg0fer2nm244qg&m=LPdCN5IG8UFacp_6qnD9mjSHXuExfnNC88F36JxV-mE&s=X-XKtFIGPiLf-pbOBL9CcElJ76dbrvjWMU4ANrs_vgk&e=

_______________________________________________
Dev mailing list
Dev@lists.opencontrail.org<mailto:Dev@lists.opencontrail.org>
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.opencontrail.org_mailman_listinfo_dev-5Flists.opencontrail.org&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=4SMc5wJ_FVS46-BSw4dDnrpmjQWP4eg0fer2nm244qg&m=ETDlLk9zvxFtMhrW_uctR9Ssi6CBKSonPoSLsoj5YNo&s=e1B9a3hynd_P4lPIsRFUbMEWQ0rhJthBVVkn7AQWIqg&e=

_______________________________________________
Dev mailing list
Dev@lists.opencontrail.org
http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org

Reply via email to