move tile directory before calling rmtree on it

this avoids the case where rmtree fails because other files are written to the directory from a different request while it is being deleted (fixes C3NAV-37C3-1W)
This commit is contained in:
Gwendolyn 2023-12-25 12:17:35 +01:00
parent 0cf56deb0c
commit 7f72aa8b79

View file

@ -118,7 +118,9 @@ def tile(request, level, zoom, x, y, access_permissions: Optional[set] = None):
if tile_cache_update != base_cache_key:
if tile_directory.exists():
rmtree(tile_directory)
old_tile_directory = tile_directory.rename(tile_directory.parent /
(tile_directory.name + '_old_tile_dir'))
rmtree(old_tile_directory)
else:
try:
data = tile_file.read_bytes()