Make sure the indexing lock is released,

even when an error occurs.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-07-01 14:49:32 -04:00
parent c2854d094b
commit e1a0ffd25c

View File

@@ -191,8 +191,11 @@ class IndexTemplateNode(MPTTModel):
# Start transaction after the lock in case the locking backend uses
# the database.
try:
with transaction.atomic():
logger.debug('IndexTemplateNode; Indexing document: %s', document)
logger.debug(
'IndexTemplateNode; Indexing document: %s', document
)
logger.debug(
'Removing document "%s" from all index instance nodes',
@@ -215,10 +218,6 @@ class IndexTemplateNode(MPTTModel):
document=document, acquire_lock=False,
index_instance_node_parent=index_instance_node
)
if acquire_lock:
lock.release()
elif self.enabled:
logger.debug('IndexTemplateNode; non parent: evaluating')
logger.debug('My parent template is: %s', self.parent)
@@ -247,6 +246,7 @@ class IndexTemplateNode(MPTTModel):
logger.debug(error_message)
else:
logger.debug('Evaluation result: %s', result)
if result:
index_instance_node, created = self.index_instance_nodes.get_or_create(
parent=index_instance_node_parent,