[gdal-dev] problem accessing rows of an image in parallel

Frank Warmerdam warmerdam at pobox.com
Sun Mar 1 22:02:51 EST 2009


Yann Chemin wrote:
> Hello list,
> 
> I am working on an OpenMP implementation of an image processing
> algorithm and was wondering if there is a known problem in accessing
> different rows at the same time on the same band handle.
> 
> sometimes I get this (or similar):
> ERROR 1: TIFFFillStrip:b4.tif: Seek error at scanline 186, strip 345
> ERROR 1: TIFFReadEncodedStrip() failed.
> 
> ERROR 1: IReadBlock failed at X offset 0, Y offset 345
> ERROR 1: GetBlockRef failed at X block offset 0, Y block offset 345
> ERROR 1: TIFFFillStrip:b4.tif: Seek error at scanline 1269, strip 157
> ERROR 1: TIFFReadEncodedStrip() failed.
> 
> ERROR 1: IReadBlock failed at X offset 0, Y offset 157
> ERROR 1: GetBlockRef failed at X block offset 0, Y block offset 157

Yann,

I would not particularly expect the above error, but it is not legal
to use one GDALDataset object in more than one thread at the same
time.  Basically there is only one FILE* per dataset and if one thread
does a seek while another thinks the file offset is at a known point
for a subsequent read havoc will ensue.

I am guessing you are running into some manifestation of this.

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent



More information about the gdal-dev mailing list