Date
1 - 2 of 2
concurrent.futures.ThreadPoolExecutor for s3 COG reads fails - CPLReleaseMutex: Error
dweber.consulting@...
This could be similar to https://github.com/mapbox/rasterio/issues/1686
In an AWS-Lambda python 3.7 runtime, there is an error like: CPLReleaseMutex: Error = 1 (Operation not permitted)
[WARNING] 2021-05-07T17:38:33.315Z 3e8b4b55-9066-426c-9319-540e39e17709
CPLE_AppDefined in HTTP response code on https://bucket-xxx-us-west-2.s3.amazonaws.com/prefix/geotiff.tif: 0
2021-05-07 17:38:33,366 | ERROR | '/vsis3/bucket-xxx-us-west-2/prefix/geotiff.tif' not recognized as a supported file format.
The python concurrency that wraps the rasterio/gdal reader is a common pattern like: dataset = []
with concurrent.futures.ThreadPoolExecutor() as executor:
future_to_task = {}
for task in peril_queries:
future = executor.submit(extract_geotiff_data, task)
future_to_task[future] = task
for future in concurrent.futures.as_completed(future_to_task):
try:
data = future.result()
dataset.extend(data)
except Exception as exc:
task = future_to_task[future]
LOGGER.error("Failed Task: %s", task)
raise
Where the 'extract_geotiff_data' function is basically given a task to read an s3-COG, and that function encapsulates everything to setup a rasterio.Env with gdal env-var settings, opening the s3 object and reading data from it. What is causing the `CPLReleaseMutex: Error` and how is it debugged and avoided? TIA, Darren |
|
Sean Gillies
Hi Darren, I've seen this error message before, and opened an issue at https://github.com/OSGeo/gdal/issues/2278. I haven't tried to reproduce the error with GDAL 3.3 yet. On Fri, May 7, 2021 at 2:51 PM <dweber.consulting@...> wrote: This could be similar to https://github.com/mapbox/rasterio/issues/1686 --
Sean Gillies |
|