[GRASS-dev] [GRASS GIS] #1451: r.li.mps (mean patch size): SIGPIPE at ipc.c:31

GRASS GIS trac at osgeo.org
Mon Sep 19 01:46:53 EDT 2011


#1451: r.li.mps (mean patch size): SIGPIPE at ipc.c:31
----------------------+-----------------------------------------------------
 Reporter:  hamish    |       Owner:  grass-dev@…              
     Type:  defect    |      Status:  new                      
 Priority:  normal    |   Milestone:  6.4.2                    
Component:  Raster    |     Version:  svn-develbranch6         
 Keywords:  r.li.mps  |    Platform:  Linux                    
      Cpu:  x86-64    |  
----------------------+-----------------------------------------------------
 Hi,

 as reported on the ML, r.li.mps falls over with a SIGPIPE. Running outside
 of gdb results in a "double free or corruption (fasttop)" fault.


 to reproduce: (North Carolina dataset)
 {{{
 g.region rast=landcover_1m
 r.mapcalc "forest.test = if(landcover_1m == 2, 1, null())"

 mkdir -p ~/.r.li/history/
 cat << EOF > ~/.r.li/history/movwindow7
 SAMPLINGFRAME 0|0|1|1
 SAMPLEAREA -1|-1|0.0147679324895|0.0133079847909
 MOVINGWINDOW
 EOF

 r.li.mps map=forest.test conf=movwindow7 out=mps.test
 ...
 Program received signal SIGPIPE, Broken pipe.
 }}}


 gdb session extracts:
 {{{
 (gdb) frame 2
 #2  0x00007ffff754edc9 in calculateIndex (file=0x605270 "movwindow7",
 f=0x4013a7 <meanPatchSize>, parameters=0x0,
     raster=0x605250 "forest1996.maybe", output=0x605590 "test.out") at
 daemon.c:198
 198             send(child[j].channel, &m);
 (gdb) list
 193             j = 0;
 194
 195
 196             while (j < WORKERS && donePid != child[j].pid)
 197                 j++;
 198             send(child[j].channel, &m);
 199
 200         }
 201
 202         /*kill childs */



 (gdb) frame 1
 #1  0x00007ffff7551365 in send (pipe=5, m=0x7fffffffaa80) at ipc.c:31
 31          check = write(pipe, m, sizeof(msg));
 (gdb) list
 26      int send(int pipe, msg * m)
 27      {
 28          int check;
 29
 30          /* write on pipe */
 31          check = write(pipe, m, sizeof(msg));
 32          if (check > 0)
 33              return 1;
 34          else
 35              return 0;
 }}}


 Hamish

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/1451>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list