This looks like something we need to fix in the caching layer. The problem seems to be that cache_tee_iter in glance/image_cache/__init__.py does not correctly distinguish between caching errors and other errors.
Maybe the best solution is to have open_for_write in glance/image_cache/__init__.py do a better job of distinguishing between exceptions that occur during cache_file.write(chunk) and exceptions that occur in the calling context (which would appear to occur in "yield chunk") ?
Very interesting.
This looks like something we need to fix in the caching layer. The problem seems to be that cache_tee_iter in glance/ image_cache/ __init_ _.py does not correctly distinguish between caching errors and other errors.
Maybe the best solution is to have open_for_write in glance/ image_cache/ __init_ _.py do a better job of distinguishing between exceptions that occur during cache_file. write(chunk) and exceptions that occur in the calling context (which would appear to occur in "yield chunk") ?