respondcreate / django-versatileimagefield

A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for quickly creating new images from the one assigned to the field.
http://django-versatileimagefield.readthedocs.io/
MIT License
530 stars 90 forks source link

failed to instance.image.delete_all_created_images() #157

Closed paulon-zervoulakus closed 4 years ago

paulon-zervoulakus commented 4 years ago

versatileimagefield version 1.10

using model.signals.post_delete: instance.image.delete_all_created_images() fail if the django service is running for quite sometime. if the service restarted it will succeed, then a couple of hours again it will fail

Traceback:

File "/usr/local/lib64/python3.6/site-packages/django/core/handlers/exception.py" in inner

  1. response = get_response(request)

File "/usr/local/lib64/python3.6/site-packages/django/core/handlers/base.py" in _get_response

  1. response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib64/python3.6/site-packages/django/core/handlers/base.py" in _get_response

  1. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib64/python3.6/site-packages/django/contrib/auth/decorators.py" in _wrapped_view

  1. return view_func(request, *args, **kwargs)

File "/home/app/multivendor/saleor/account/decorators.py" in new_fn

  1. return fn(request, img_id, *args, **kwargs)

File "/home/app/multivendor/saleor/storefront/views.py" in storefront_product_image_delete

  1. img.delete()

File "/home/app/multivendor/saleor/core/models.py" in delete

  1. super().delete(*args, **kwargs)

File "/usr/local/lib64/python3.6/site-packages/django/db/models/base.py" in delete

  1. return collector.delete()

File "/usr/local/lib64/python3.6/site-packages/django/db/models/deletion.py" in delete

  1. sender=model, instance=obj, using=self.using

File "/usr/local/lib64/python3.6/site-packages/django/dispatch/dispatcher.py" in send

  1. for receiver in self._live_receivers(sender)

File "/usr/local/lib64/python3.6/site-packages/django/dispatch/dispatcher.py" in

  1. for receiver in self._live_receivers(sender)

File "/home/app/multivendor/saleor/product/models.py" in delete_product_image

  1. instance.image.delete_all_created_images()

File "/usr/local/lib/python3.6/site-packages/versatileimagefield/mixins.py" in delete_all_created_images

  1. self.delete_sized_images()

File "/usr/local/lib/python3.6/site-packages/versatileimagefield/mixins.py" in delete_sized_images

  1. sizer_regex

File "/usr/local/lib/python3.6/site-packages/versatileimagefield/mixins.py" in delete_matching_files_from_storage

  1. original=self.name

Exception Type: OSError at /en/storefront/forrest-pharmacy-1/edit-product/8/image-delete/126/ Exception Value: [Errno 5] Input/output error

paulon-zervoulakus commented 4 years ago

kindly remove the print() from "/versatileimagefield/mixins.py" it causes OSError on EC2 linux machine