[gdal-dev] "gdaladdo: tif_dirwrite.c:2449: TIFFWriteDirectoryTagData: Assertion `datalength<0x80000000UL' failed."

Even Rouault even.rouault at spatialys.com
Thu Jan 23 05:21:19 PST 2020


Mats,

> I'm trying to build overviews on a large vrt file, but I'm getting the > 
following error message
>"gdaladdo: tif_dirwrite.c:2449: TIFFWriteDirectoryTagData: Assertion > 
`datalength<0x80000000UL' failed."

Ouch, you hit a bug in libtiff. What you are trying to create is an absolutely 
large BigTIFF file.

Given 128x128 tiles and your raster dimensions, the size of each of the 
TileByteCount/TileOffset TIFF array would be

(3812500 / 128.) * (8203125 / 128.) * sizeof(double) = 15.2 GB !

For tag data, libtiff has a limitation to 2 GB (this is a - reasonable - 
implementation limitation, the format itself could allow to 2^63). Ideally, it 
should have rejected from the start this attempt instead of crashing. You may 
want to file a ticket about that.

You can add --config GDAL_TIFF_OVR_BLOCKSIZE 1024 (or a larger value) to 
increase the size of overview tiles, and thus reduce the size of each array to 
a more reasonable ~ 230 MB.

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list