Rich Shepard wrote: > > Can you revert the previous patch with: > > patch -R -p0 < write_errno.patch > > then apply the attached patch with: > > patch -R -p0 < write_errors.patch > > and re-compile. > > That should cause it to print more than one error. > > > GRASS 6.5.svn (Oregon):/usr4/grassbase > r.patch in=$MAPS out=demOR --o > WARNING: map [demOR] - unable to write row 24578 (No such file or directory) > WARNING: map [demOR] - unable to write row 24578 (File too large) > WARNING: map [demOR] - unable to write row 24578 (File too large) > 100% > Creating support files for raster map <demOR> > > I've not before encountered 'file too large' ...
The code is EFBIG. EFBIG An attempt was made to write a file that exceeds the implementa- tion-defined maximum file size or the process's file size limit, or to write at a position past the maximum allowed offset. That rules out disk full (which fails with ENOSPC). > > Also, can you provide the output from: > > ls -l /usr4/grassbase/Oregon/PERMANENT/cell/demOR > > But this explains it: > > 2147483647 Jan 22 07:39 /usr4/grassbase/Oregon/PERMANENT/cell/demOR Yep, that's the 2GiB limit. > That's a 2G file size for 10m resolution DEM of the entire state. Wow! > > What's the best strategy for decreasing file size? Do I not make a > state-wide DEM but make 2 or three instead? Should I keep the 9 separate > maps and concatenate as necessary for specific projects? Actually, I want to know why the 2GiB limit is there. 1. Can you confirm that include/Make/Platform.make contains: #Large File Support (LFS) USE_LARGEFILES = 1 2. Can you re-compile lib/gis and check that the compilation commands include the flag -D_FILE_OFFSET_BITS=64. [r.patch shouldn't need any particular compilation flags, as the file in question is created and written by lib/gis.] 3. Can you provide the files produced by the following commands (run from within a GRASS session): ldd $GIBASE/bin/r.patch > ldd.txt nm -D $GISBASE/lib/libgrass_gis.so > nm.txt > This has been a _very_ useful lesson. > > > BTW, do you get similar errors with other commands using the same > > region, e.g.: > > r.mapcalc 'test = rand(9999)' > > GRASS 6.5.svn (Oregon):/usr4/grassbase > r.mapcalc 'test = rand(9999)' > Too few arguments (1) to function rand() > Parse error Oops; that should have been rand(0,9999). But I think I already know how that would have turned out. -- Glynn Clements <gl...@gclements.plus.com> _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user