If image buffer is not loaded and blender attempts to reload it (during `BKE_image_acquire_ibuf`) over and over for each frame rendered. When attempting this reload, image_load_image_file is calling `BKE_image_free_buffers` and tag the Image to the (GPU) image_free_queue (because this run on the rendering thread). If the main thread decide to redraw the UI and go through `GPU_free_unused_buffers` they all get deleted and if that happens before the rendering thread use them ... segfault. If I replace the environment textures with correct ones (the file does not seems to contain them), there is no crash when rendering. I used a list of GPUTexture from blender Image to increase and decrease the reference counter correctly. This add very little memory and computation overhead.