#3412 closed defect (fixed)
r.compress -u segfault
| Reported by: | neteler | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | 7.2.2 |
| Component: | Default | Version: | svn-releasebranch72 |
| Keywords: | r.compress | Cc: | |
| CPU: | Unspecified | Platform: | Linux |
Description
When trying to uncompress a map, r.compress segfaults:
## GRASS 7.2.2svn (nc_spm_08_grass7):~ > r.compress -u elev_lid792_1m_viewshed Segmentation fault (core dumped)
Map info:
r.info elev_lid792_1m_viewshed +----------------------------------------------------------------------------+ | Map: elev_lid792_1m_viewshed Date: Fri Jul 29 13:45:27 2016 | | Mapset: user1 Login of Creator: mneteler | | Location: nc_spm_08_grass7 | | DataBase: /home/mneteler/grassdata | | Title: | | Timestamp: none | |----------------------------------------------------------------------------| | | | Type of Map: raster Number of Categories: 0 | | Data Type: FCELL | | Rows: 750 | | Columns: 700 | | Total Cells: 525000 | | Projection: Lambert Conformal Conic | | N: 220750 S: 220000 Res: 1 | | E: 639000 W: 638300 Res: 1 | | Range of data: min = 11.29489 max = 180 | | | | Data Description: | | generated by r.viewshed | | | | Comments: | | r.viewshed --overwrite input="elev_lid792_1m" output="elev_lid792_1m\ | | _viewshed" coordinates=638728.087167,220609.261501 observer_elevatio\ | | n=5.0 target_elevation=0.0 max_distance=-1 refraction_coeff=0.14286 \ | | memory=500 | | | +----------------------------------------------------------------------------+
And GDB debugging:
GRASS 7.2.2svn (nc_spm_08_grass7):~/software/grass72 > gdb r.compress
GNU gdb (GDB) Fedora 8.0-24.fc26
...
(gdb) r -u elev_lid792_1m_viewshed
Starting program: /home/mneteler/software/grass72/dist.x86_64-pc-linux-gnu/bin/r.compress -u elev_lid792_1m_viewshed
...
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff73b1ddd in __memset_avx2_erms () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install zlib-1.2.11-2.fc26.x86_64
(gdb) bt
#0 0x00007ffff73b1ddd in __memset_avx2_erms () from /lib64/libc.so.6
#1 0x00007ffff798da23 in G_zero (buf=0x0, i=6008) at zero.c:25
#2 0x00007ffff7bc2145 in open_raster_new (name=0x606a00 "elev_lid792_1m_viewshed", open_mode=3, map_type=1) at open.c:714
#3 0x00007ffff7bc165b in Rast_open_fp_new_uncompressed (name=0x606a00 "elev_lid792_1m_viewshed") at open.c:507
#4 0x0000000000402327 in doit (name=0x606a00 "elev_lid792_1m_viewshed", uncompress=1, map_type=1) at main.c:268
#5 0x0000000000401d2c in process (name=0x606a00 "elev_lid792_1m_viewshed", uncompress=1) at main.c:164
#6 0x000000000040198d in main (argc=3, argv=0x7fffffffd488) at main.c:99
(gdb) bt full
#0 0x00007ffff73b1ddd in __memset_avx2_erms () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff798da23 in G_zero (buf=0x0, i=6008) at zero.c:25
No locals.
#2 0x00007ffff7bc2145 in open_raster_new (name=0x606a00 "elev_lid792_1m_viewshed", open_mode=3, map_type=1) at open.c:714
xname = "elev_lid792_1m_viewshed\000\035\343\224\367\377\177\000\000\b\354\230\367\377\177\000\000\350\t\272\367\377\177\000\000\020\313\377\377\377\177\000\000n\342\224\367\377\177\000\000\060\313\377\377\377\177\000\000\000\000\000\000\000\000\000\000\020\314\377\377\377\177\000\000\035\343\224\367\377\177\000\000\b\354\230\367\377\177\000\000\000\231\311`\001\000\000\000\240\275\274\367\377\177\000\000 f`", '\000' <repeats 13 times>, "\017\000\000\000\000\000\000\000\250\350\377\377\377\177\000\000\340P`\000\000\000\000\000\340\314\377\377\377\177\000\000,\n\272\367\377\177\000\000\240\275\274\367\377\177\000\000 f`", '\000' <repeats 13 times>...
xmapset = "user1\000\000\000T\377\230\367\377\177\000\000\360\313\377\377\005\000\000\000\000\231\311`\220\021\241]\020\314\377\377\377\177\000\000l\026\225\367\377\177\000\000\220\314\377\377\377\177\000\000 f`\000\000\000\000\000\240\275\274\367\377\177\000\000+\354\230\367\377\177\000\000\060\314\377\377\377\177\000\000g\027\225\367\377\177\000\000 f`\000\000\000\000\000\240\275\274\367\377\177\000\000\320\314\377\377\377\177\000\000\006ĺ\367\377\177\000\000\360``\000\000\000\000\000\000j`\000\000\000\000\000k-@", '\000' <repeats 13 times>, "X\314\377\377\377\177\000\000\000\000\000\000\000\000\000\000\300\313\377\377\377\177\000\000,\n\272\367\377\177\000\000\260\314\377\377\377\177\000\000\231"...
fcb = 0x60e728
fd = 1
cell_fd = 5
tempname = 0x609630 "/home/mneteler/grassdata/nc_spm_08_grass7/user1/.tmp/oboe.mundialis/11666.1"
map = 0x6088f0 "elev_lid792_1m_viewshed"
mapset = 0x6095b0 "user1"
cell_dir = 0x7ffff7bcdadf "fcell"
nbytes = 4
#3 0x00007ffff7bc165b in Rast_open_fp_new_uncompressed (name=0x606a00 "elev_lid792_1m_viewshed") at open.c:507
No locals.
#4 0x0000000000402327 in doit (name=0x606a00 "elev_lid792_1m_viewshed", uncompress=1, map_type=1) at main.c:268
cellhd = {format = -1, compressed = 2, rows = 750, rows3 = 750, cols = 700, cols3 = 700, depths = 1, proj = 99, zone = 0, ew_res = 1,
ew_res3 = 1, ns_res = 1, ns_res3 = 1, tb_res = 1, north = 220750, south = 220000, east = 639000, west = 638300, top = 1, bottom = 0}
new = 4200112
old = 0
nrows = 32767
row = 0
rast = 0x7ffff7ba0a2c <state+44>
#5 0x0000000000401d2c in process (name=0x606a00 "elev_lid792_1m_viewshed", uncompress=1) at main.c:164
colr = {version = 0, shift = 0, invert = 0, is_float = 0, null_set = 0, null_red = 0 '\000', null_grn = 0 '\000', null_blu = 0 '\000',
undef_set = 0, undef_red = 0 '\000', undef_grn = 0 '\000', undef_blu = 0 '\000', fixed = {rules = 0x60e4a0, n_rules = 255, lookup = {
red = 0x0, grn = 0x0, blu = 0x0, set = 0x0, nalloc = 0, active = 0}, fp_lookup = {vals = 0x0, rules = 0x0, nalloc = 0,
active = 0}, min = 11.294887542724609, max = 180}, modular = {rules = 0x0, n_rules = 0, lookup = {red = 0x0, grn = 0x0, blu = 0x0,
set = 0x0, nalloc = 0, active = 0}, fp_lookup = {vals = 0x0, rules = 0x0, nalloc = 0, active = 0}, min = 0, max = -1},
cmin = 11.294887542724609, cmax = 180, organizing = 0}
hist = {fields = {0x606840 "Fri Jul 29 13:45:27 2016", 0x606de0 "elev_lid792_1m_viewshed", 0x607870 "user1", 0x606aa0 "mneteler",
0x606ac0 "raster", 0x606ae0 "", 0x606b00 "", 0x606b20 "generated by r.viewshed"}, nlines = 4, lines = 0x606c50}
cats = {ncats = 0, num = 0, title = 0x608720 "", fmt = 0x608740 "", m1 = 0, a1 = 0, m2 = 0, a2 = 0, q = {truncate_only = 0,
round_only = 0, defaultDRuleSet = 6316576, defaultCRuleSet = 0, infiniteLeftSet = 0, infiniteRightSet = 0, cRangeSet = 12369,
maxNofRules = 0, nofRules = 0, defaultDMin = 6.9533486653477228e-310, defaultDMax = 6.9533486653477228e-310, defaultCMin = 95,
defaultCMax = 0, infiniteDLeft = 6.9531436082562536e-310, infiniteDRight = 6.953355807227106e-310, infiniteCLeft = -144561320,
infiniteCRight = 32767, dMin = -nan(0xf800000003011), dMax = 4.9406564584124654e-324, cMin = 6312160, cMax = 0, table = 0x1,
fp_lookup = {vals = 0x3100000007, rules = 0x0, nalloc = 0, active = 0, inf_dmin = 1.040701294729263e+143,
inf_dmax = 2.6312747812465374e-312, inf_min = 0, inf_max = 0}}, labels = 0x0, marks = 0x40, nalloc = 0, last_marked_rule = -1}
quant = {truncate_only = 0, round_only = 1, defaultDRuleSet = -148335230, defaultCRuleSet = 32767, infiniteLeftSet = 0,
infiniteRightSet = 0, cRangeSet = -144565552, maxNofRules = 0, nofRules = 0, defaultDMin = 6.2677389677743225e-310,
defaultDMax = 6.9533558072152484e-310, defaultCMin = 4200112, defaultCMax = 0, infiniteDLeft = -nan(0xf800000003101),
infiniteDRight = 4.9703003971629402e-321, infiniteCLeft = -144565552, infiniteCRight = 32767, dMin = 4.9406564584124654e-324,
dMax = 1.0397779375927461e-312, cMin = 0, cMax = 0, table = 0x0, fp_lookup = {vals = 0x0, rules = 0x7c0000005b, nalloc = 119,
active = 0, inf_dmin = 1.0880979340924386e-306, inf_dmax = 4.9406564584124654e-324, inf_min = 4, inf_max = 49}}
colr_ok = 0
hist_ok = 1
cats_ok = 1
quant_ok = 1
newsize = 45
oldsize = 2106759
diff = 140737340387566
map_type = 1
rname = "\000\000\000\000\000\000\000\000,\n\272\367\377\177\000\000P\321\377\377\377\177\000\000\231\362\224\367\377\177\000\000p\324\377\377\000\000\000\000\n\004)\367\377\177\000\000 \322\377\377\377\177\000\000\340\321\377\377\377\177\000\000\240\321\377\377\377\177\000\000m*\231\367\377\177\000\000|*\231\367\377\177\000\000&\322\377\377\377\177\000\000\200\322\377\377\377\177\000\000\377%\227\367\377\177\000\000P\322\377\377\000\000\000\000\000\000\000\000\377\177", '\000' <repeats 18 times>, "old\000_\000\000\000\060_\231\367\377\177\000\000\000\000\000\000\000\000\000_\200i`\000\000\000\000\000hijklmnopqrstuvwxyz", '\000' <repeats 13 times>...
rmapset = "\000\000\000\000\000\000\000\000\240i`\000\000\000\000\000raster\000\000\000\000\000\000\000\000\000\000\200\322\377\377\003\000\000\000\002+\231\367\377\177\000\000`\016\272\367\377\177", '\000' <repeats 19 times>, "j`", '\000' <repeats 14 times>, "\231\311`\220\021\241]`\016\272\367\377\177\000\000\260\026@\000\000\000\000\000\060\323\377\377\377\177\000\000O\376\226\367\377\177\000\000\210\324\377\377\377\177\000\000\005\000\000\000\000\000\000\000\360\321\377\377\377\000\000\000\000\000\000\000<", '\000' <repeats 11 times>, "p\324\377\377", '\000' <repeats 12 times>, "Z\331\377\377\377\177\000\000mi`", '\000' <repeats 13 times>...
mapset = 0x606a60 "user1"
data_fd = 3
sizestr = 0x10 <error: Cannot access memory at address 0x10>
#6 0x000000000040198d in main (argc=3, argv=0x7fffffffd478) at main.c:99
stat = 1
n = 0
name = 0x606a00 "elev_lid792_1m_viewshed"
module = 0x7ffff7ba0e88 <state+40>
map = 0x7ffff7ba0ee8 <state+136>
uncompress = 0x7ffff7ba0eb8 <state+88>
pflag = 0x606890
gflag = 0x6068e0
(gdb)
Change History (6)
comment:1 by , 7 years ago
follow-up: 3 comment:2 by , 7 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Thanks for the fix! Closing.
follow-up: 4 comment:3 by , 7 years ago
Replying to neteler:
Thanks for the fix! Closing.
Note that r.compress -u still compresses null files if GRASS_COMPRESS_NULLS=1. OK?
follow-up: 5 comment:4 by , 7 years ago
Replying to mmetz:
Note that r.compress -u still compresses null files if GRASS_COMPRESS_NULLS=1. OK?
You mean that the null files are ignored with -u?
follow-up: 6 comment:5 by , 7 years ago
Replying to neteler:
Replying to mmetz:
Note that r.compress -u still compresses null files if GRASS_COMPRESS_NULLS=1. OK?
You mean that the null files are ignored with -u?
Yes, the -u flag does not affect null file compression.
On library level: when opening a new raster with Rast_open_new_uncompressed(), null files are still compressed if GRASS_COMPRESS_NULLS=1. Maybe it would be more logical to not compress null files with Rast_open_new_uncompressed().
comment:6 by , 7 years ago
Replying to mmetz:
On library level: when opening a new raster with Rast_open_new_uncompressed(), null files are still compressed if GRASS_COMPRESS_NULLS=1. Maybe it would be more logical to not compress null files with Rast_open_new_uncompressed().
From a user's point of view it would be beautiful to have the null file un/compression done according to the use of r.compress with/-out -u. Probably for 7.4?

Replying to neteler:
Apparently a bug in the rasterlib when NULLs are compressed, but not data. Should be fixed in r71448,50 (trunk, relbr72).