mirror of
https://github.com/ansible/awx.git
synced 2026-05-22 16:27:42 -02:30
fixes inventory update deadlock
* all inventory updates continue to occur in parallel up to the point that they update the database with their results. * the "funnel" is achieved by using a global per-inventory postgres named lock
This commit is contained in:
@@ -41,6 +41,7 @@ from awx.main.utils import (
|
||||
from awx.main.utils.common import _get_ansible_version
|
||||
from awx.main.signals import disable_activity_stream
|
||||
from awx.main.constants import STANDARD_INVENTORY_UPDATE_ENV
|
||||
from awx.main.utils.pglock import advisory_lock
|
||||
|
||||
logger = logging.getLogger('awx.main.commands.inventory_import')
|
||||
|
||||
@@ -870,6 +871,7 @@ class Command(BaseCommand):
|
||||
Load inventory from in-memory groups to the database, overwriting or
|
||||
merging as appropriate.
|
||||
'''
|
||||
with advisory_lock('inventory_{}_update'.format(self.inventory.id)):
|
||||
# FIXME: Attribute changes to superuser?
|
||||
# Perform __in queries in batches (mainly for unit tests using SQLite).
|
||||
self._batch_size = 500
|
||||
|
||||
Reference in New Issue
Block a user