diff --git a/src/pretix/base/services/cart.py b/src/pretix/base/services/cart.py index 9be624a1d2..3a950eadd6 100644 --- a/src/pretix/base/services/cart.py +++ b/src/pretix/base/services/cart.py @@ -670,15 +670,15 @@ class CartManager: self._check_max_cart_size() self._calculate_expiry() - with self.event.lock() as now_dt: - with transaction.atomic(): - self.now_dt = now_dt - self._extend_expiry_of_valid_existing_positions() - err = self._delete_out_of_timeframe() - err = self.extend_expired_positions() or err - err = self._perform_operations() or err - if err: - raise CartError(err) + # with self.event.lock() as now_dt: + with transaction.atomic(): + self.now_dt = now() + self._extend_expiry_of_valid_existing_positions() + err = self._delete_out_of_timeframe() + err = self.extend_expired_positions() or err + err = self._perform_operations() or err + if err: + raise CartError(err) def update_tax_rates(event: Event, cart_id: str, invoice_address: InvoiceAddress): diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 0e1f9df58e..ae08ee2ed5 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -597,16 +597,16 @@ def _perform_order(event: str, payment_provider: str, position_ids: List[str], except InvoiceAddress.DoesNotExist: pass - with event.lock() as now_dt: - positions = list(CartPosition.objects.filter( - id__in=position_ids).select_related('item', 'variation', 'subevent')) - if len(positions) == 0: - raise OrderError(error_messages['empty']) - if len(position_ids) != len(positions): - raise OrderError(error_messages['internal']) - _check_positions(event, now_dt, positions, address=addr) - order = _create_order(event, email, positions, now_dt, pprov, - locale=locale, address=addr, meta_info=meta_info, sales_channel=sales_channel) + # with event.lock() as now_dt: + now_dt = now() + positions = list(CartPosition.objects.filter(id__in=position_ids).select_related('item', 'variation', 'subevent')) + if len(positions) == 0: + raise OrderError(error_messages['empty']) + if len(position_ids) != len(positions): + raise OrderError(error_messages['internal']) + _check_positions(event, now_dt, positions, address=addr) + order = _create_order(event, email, positions, now_dt, pprov, + locale=locale, address=addr, meta_info=meta_info, sales_channel=sales_channel) invoice = order.invoices.last() # Might be generated by plugin already if event.settings.get('invoice_generate') == 'True' and invoice_qualified(order):