On Fri, Oct 05, 2018 at 04:31:07PM +0100, [email protected] wrote:
> From: Lucas Alvares Gomes <[email protected]>
> 
> Calling getattr() on a Row object after invoking delkey() with a value
> that does not exist in the object will cause getattr() to fail with a
> KeyError error. For example:
> 
> Oct 05 14:59:28 neutron-server[28435]:   File
> "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/connection.py",
> line 122, in run
> Oct 05 14:59:28 neutron-server[28435]:
> txn.results.put(txn.do_commit())
> Oct 05 14:59:28 neutron-server[28435]:   File
> "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py",
> line 86, in do_commit
> Oct 05 14:59:28 neutron-server[28435]:     command.run_idl(txn)
> Oct 05 14:59:28 neutron-server[28435]:   File
> "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/command.py",
> line 299, in run_idl
> Oct 05 14:59:28 neutron-server[28435]:     if
> isinstance(getattr(record, self.column), dict):
> Oct 05 14:59:28 neutron-server[28435]:   File
> "/usr/local/lib/python2.7/dist-packages/ovs/db/idl.py", line 843, in
> __getattr__
> Oct 05 14:59:28 neutron-server[28435]:     del dmap[key]
> Oct 05 14:59:28 neutron-server[28435]: KeyError: 'bogusvalue'
> 
> This patch is replacing the "del dmap[key]" instruction with a
> "dmap.pop(key, None)" instruction instead because a pop() (with a
> default value) will not raise an exception in case the key does not
> exist in the object in the first place, it will just ignore it.
> 
> Signed-Off-By: Lucas Alvares Gomes <[email protected]>

Thanks, applied to master and backported as far as it would go.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to