Opened 9 years ago

Closed 9 years ago

#3708 closed defect (fixed)

gdalwarp / gdal_translate return 0 when writing output ran out of disk space

Reported by: cdestigter Owned by: warmerdam
Priority: normal Milestone: 1.8.0
Component: Utilities Version: 1.6.1
Severity: normal Keywords:
Cc:

Description

Create a 10mb temp filesystem:

sudo mkdir /mnt/tmpfs
sudo mount -t tmpfs -o size=10m tmpfs /mnt/tmpfs

Fill up the filesystem via gdalwarp (or gdal_translate)

gdalwarp large_file.tif /mnt/tmpfs/broken.tif

a bunch of error messages come through while writing the file, as expected:

Creating output file that is 15000P x 7500L.
Processing input file r_00000261/00000001.tif.
0..ERROR 1: TIFFAppendToStrip:Write error at scanline 231
ERROR 1: TIFFAppendToStrip:Write error at scanline 231
ERROR 1: WriteEncodedTile/Strip() failed.
ERROR 1: TIFFAppendToStrip:Write error at scanline 232
ERROR 1: TIFFAppendToStrip:Write error at scanline 232
ERROR 1: WriteEncodedTile/Strip() failed.
...
More than 1000 errors or warnings have been reported. No more will be reported from now.

The return code for the process turns out to be 0.

echo $?
0

I'm using gdal 1.6.1, but I can't see any tickets or changesets that look relevant, so I'm assuming this is still around?

Change History (1)

comment:1 Changed 9 years ago by Even Rouault

Milestone: 1.8.0
Resolution: fixed
Status: newclosed

r20189 /trunk/gdal/ (9 files in 4 dirs): Make gdal_translate and gdalwarp return non-zero code when block writing failed for some reason (like out of disk space); --> addition of a new (private) member in GDALRasterBand class to memorize when the writing of a dirty block fails to report it later; similar mechanism in GTiff driver for the FlushBlockBuf?() method that is a second level of I/O caching... (#3708)

Note: See TracTickets for help on using tickets.