From 6709a392af2df8219a2a607c8cd0a8a4a1bc7419 Mon Sep 17 00:00:00 2001 From: Dan LaManna Date: Thu, 1 Dec 2022 17:12:13 -0500 Subject: [PATCH] Use proper syntax for only locking ZarrArchive table --- dandiapi/zarr/views/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dandiapi/zarr/views/__init__.py b/dandiapi/zarr/views/__init__.py index 97f307388..64f569ebc 100644 --- a/dandiapi/zarr/views/__init__.py +++ b/dandiapi/zarr/views/__init__.py @@ -187,8 +187,7 @@ def create(self, request): @action(methods=['POST'], detail=True) def upload(self, request, zarr_id): """Start an upload of files to a zarr archive.""" - # reset select_related to prevent locking additional rows - queryset = self.get_queryset().select_related(None).select_for_update() + queryset = self.get_queryset().select_for_update(of=['self']) with transaction.atomic(): zarr_archive: ZarrArchive = get_object_or_404(queryset, zarr_id=zarr_id) if zarr_archive.status == ZarrArchiveStatus.INGESTING: @@ -218,8 +217,7 @@ def upload(self, request, zarr_id): @action(methods=['POST'], url_path='upload/complete', detail=True) def upload_complete(self, request, zarr_id): """Finish an upload of files to a zarr archive.""" - # reset select_related to prevent locking additional rows - queryset = self.get_queryset().select_related(None).select_for_update() + queryset = self.get_queryset().select_for_update(of=['self']) with transaction.atomic(): zarr_archive: ZarrArchive = get_object_or_404(queryset, zarr_id=zarr_id) if not self.request.user.has_perm('owner', zarr_archive.dandiset):