Opened 12 years ago

Closed 10 years ago

#1680 closed defect (fixed)

r.proj w/ OpenMP segfaults

Reported by: hamish Owned by: grass-dev@…
Priority: normal Milestone: 7.0.0
Component: Raster Version: svn-trunk
Keywords: r.proj, openmp Cc:
CPU: x86-64 Platform: Linux

Description

Hi,

just trying r.proj in trunk with OpenMP support. Allocation of memory works fine, then it roars into life on all processors, but after 20 sec or so it segfaults.

partial gdb session:

Allocating memory and reading input map...
 100%
Projecting...
[New Thread 0x7fffecb6f700 (LWP 22162)]
[New Thread 0x7fffec36e700 (LWP 22163)]
[New Thread 0x7fffebb6d700 (LWP 22164)]
[New Thread 0x7fffeb36c700 (LWP 22165)]
[New Thread 0x7fffeab6b700 (LWP 22166)]
  90%
Program received signal SIGSEGV, Segmentation fault.
0x00000000004064fe in p_nearest (ibuffer=0x60d1b0, obufptr=0x628804, cell_type=1, col_idx=270.09924849952966, 
    row_idx=15568.366738961817, cellhd=0x7fffffffd870) at nearest.c:33
33	    cell = CVAL(ibuffer, row, col);



(gdb) bt
#0  0x00000000004064fe in p_nearest (ibuffer=0x60d1b0, obufptr=0x628804, cell_type=1, col_idx=270.09924849952966, 
    row_idx=15568.366738961817, cellhd=0x7fffffffd870) at nearest.c:33
#1  0x00000000004063a7 in main.omp_fn.0 (.omp_data_i=0x7fffffffdbe0) at main.c:517
#2  0x0000000000405dfd in main (argc=5, argv=0x7fffffffde98) at main.c:496

(gdb) list
28	    if (row < 0 || row >= cellhd->rows || col < 0 || col >= cellhd->cols) {
29		Rast_set_null_value(obufptr, 1, cell_type);
30		return;
31	    }
32	
33	    cell = CVAL(ibuffer, row, col);
34	
35	    if (Rast_is_f_null_value(&cell)) {
36		Rast_set_null_value(obufptr, 1, cell_type);
37		return;

(gdb) bt full
...
        obuffer = 0x628680
        ibuffer = 0x60d1b0
...
        row = 16068
        col = 3137560
        irows = 16801
        icols = 15601
        orows = 17353
        ocols = 15380
...

The column count seems a bit wacky:

col = 3137560

I don't know if it means anything, but note that value is just over 200 * icols.

?, Hamish

Change History (1)

comment:1 by neteler, 10 years ago

Resolution: fixed
Status: newclosed

In r52882 the openMP parallelization has been disabled, see also trac #1710.

Closing.

Note: See TracTickets for help on using tickets.