Merge "Stop logging deadlock tracebacks"

This commit is contained in:
Jenkins 2015-09-14 18:36:42 +00:00 committed by Gerrit Code Review
commit 631f38b362
5 changed files with 14 additions and 9 deletions

View File

@ -17,6 +17,7 @@ import contextlib
from oslo_config import cfg
from oslo_db import api as oslo_db_api
from oslo_db import exception as db_exc
from oslo_db.sqlalchemy import session
from oslo_utils import uuidutils
from sqlalchemy import exc
@ -28,8 +29,11 @@ from neutron.db import common_db_mixin
_FACADE = None
MAX_RETRIES = 10
retry_db_errors = oslo_db_api.wrap_db_retry(max_retries=MAX_RETRIES,
retry_on_deadlock=True)
is_deadlock = lambda e: isinstance(e, db_exc.DBDeadlock)
retry_db_errors = oslo_db_api.wrap_db_retry(
max_retries=MAX_RETRIES,
exception_checker=is_deadlock
)
def _create_facade_lazily():

View File

@ -137,7 +137,7 @@ class DbQuotaDriver(object):
retry_interval=0.1,
inc_retry_interval=True,
retry_on_request=True,
retry_on_deadlock=True)
exception_checker=db_api.is_deadlock)
def make_reservation(self, context, tenant_id, resources, deltas, plugin):
# Lock current reservation table
# NOTE(salv-orlando): This routine uses DB write locks.

View File

@ -124,7 +124,8 @@ class TunnelTypeDriver(helpers.SegmentTypeDriver):
{'type': self.get_type(), 'range': current_range})
@oslo_db_api.wrap_db_retry(
max_retries=db_api.MAX_RETRIES, retry_on_deadlock=True)
max_retries=db_api.MAX_RETRIES,
exception_checker=db_api.is_deadlock)
def sync_allocations(self):
# determine current configured allocatable tunnel ids
tunnel_ids = set()

View File

@ -1443,9 +1443,9 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
return self._bind_port_if_needed(port_context)
@oslo_db_api.wrap_db_retry(
max_retries=db_api.MAX_RETRIES,
retry_on_deadlock=True, retry_on_request=True,
exception_checker=lambda e: isinstance(e, sa_exc.StaleDataError)
max_retries=db_api.MAX_RETRIES, retry_on_request=True,
exception_checker=lambda e: isinstance(e, (sa_exc.StaleDataError,
os_db_exception.DBDeadlock))
)
def update_port_status(self, context, port_id, status, host=None,
network=None):

View File

@ -211,9 +211,9 @@ class TrackedResource(BaseResource):
# ensure that an UPDATE statement is emitted rather than an INSERT one
@oslo_db_api.wrap_db_retry(
max_retries=db_api.MAX_RETRIES,
retry_on_deadlock=True,
exception_checker=lambda exc:
isinstance(exc, oslo_db_exception.DBDuplicateEntry))
isinstance(exc, (oslo_db_exception.DBDuplicateEntry,
oslo_db_exception.DBDeadlock)))
def _set_quota_usage(self, context, tenant_id, in_use):
return quota_api.set_quota_usage(
context, self.name, tenant_id, in_use=in_use)