I'm wondering if the correct thing to do here is to make the logging code respect the reraise parameter and then use that to say that the exception handler doesn't want to reraise the original exception. That seems like the behavior we want with reraise anyway.
https://github.com/openstack/oslo- incubator/blob/master/openstack/common/excutils.py#L67 ** Also affects: oslo Importance: Undecided Status: New ** Changed in: oslo Status: New => Triaged ** Changed in: oslo Importance: Undecided => Medium -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1288188 Title: unwanted lbaas related error logs in q-svc screen Status in OpenStack Neutron (virtual network service): New Status in Oslo - a Library of Common OpenStack Code: Triaged Bug description: 2014-03-03 09:25:31.621 5910 ERROR root [-] Original exception being dropped: ['Traceback (most recent call last):\n', ' File "/opt/stack/new/neutron/neutron/db/loadbalancer/loadbalancer_db.py", line 206, in _get_resource\n r = self._get_by_id(context, model, id)\n', ' File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 144, in _get_by_id\n return query.filter(model.id == id).one()\n', ' File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2323, in one\n raise orm_exc.NoResultFound("No row was found for one()")\n', 'NoResultFound: No row was found for one()\n'] 2014-03-03 09:25:31.622 5910 WARNING neutron.services.loadbalancer.drivers.common.agent_driver_base [req-6949f3b4-f991-48b7-8424-b3bfbca7c822 None] Cannot update status: member d439c879-55f7-400f-b6a8-32753f057b05 not found in the DB, it was probably deleted concurrently There is no need for error log about original exception being dropped as warning log is enough. This happens due to using save_and_reraise_exception() in loadbalancer_db code: def _get_resource(self, context, model, id): try: r = self._get_by_id(context, model, id) except exc.NoResultFound: with excutils.save_and_reraise_exception(): if issubclass(model, Vip): raise loadbalancer.VipNotFound(vip_id=id) elif issubclass(model, Pool): raise loadbalancer.PoolNotFound(pool_id=id) elif issubclass(model, Member): raise loadbalancer.MemberNotFound(member_id=id) elif issubclass(model, HealthMonitor): raise loadbalancer.HealthMonitorNotFound(monitor_id=id) return r where the whole purpose of exception handler is to reraise proper type of exception. I think save_and_reraise_exception() was designed for cases when new exceptions raised inside exception handler are not expected. In this particular case I don't see the reason for using save_and_reraise_exception(). As an option I think a parameter can be added to save_and_reraise_exception() constructor to disable logging. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1288188/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

