[GRASS-dev] [GRASS GIS] #3429: g.gui.iclass: segfault when loading vector layer

GRASS GIS trac at osgeo.org
Sat Nov 11 15:57:09 PST 2017


#3429: g.gui.iclass: segfault when loading vector layer
--------------------------+------------------------------------------
  Reporter:  mlennert     |      Owner:  grass-dev@…
      Type:  defect       |     Status:  new
  Priority:  normal       |  Milestone:  7.4.0
 Component:  wxGUI        |    Version:  svn-trunk
Resolution:               |   Keywords:  g.gui.iclass import segfault
       CPU:  Unspecified  |   Platform:  Unspecified
--------------------------+------------------------------------------

Comment (by mlennert):

 Replying to [comment:4 annakrat]:
 > I have just been looking at this, but since I have to leave right now,
 this is where I got. I don't understand how the temporary maps work, so
 it's hard to say what consequences this has, but please test.

 Martin: as you introduced the whole notion of temporary vector maps, maybe
 you can explain ?


 >
 > {{{
 > Index: Vlib/open.c
 > ===================================================================
 > --- Vlib/open.c       (revision 71523)
 > +++ Vlib/open.c       (working copy)
 > @@ -960,7 +960,7 @@
 >      }
 >      G_debug(1, "Vect_open_tmp_new(): name = '%s' with_z = %d", name,
 with_z);
 >
 > -    return open_new(Map, tmp_name, with_z, TEMPORARY_MAP); /* temporary
 map */
 > +    return open_new(Map, tmp_name, with_z, TEMPORARY_MAP_ENV); /*
 temporary map */
 >  }
 >
 > }}}
 > {{{
 > Index: gui/wxpython/iclass/frame.py
 > ===================================================================
 > --- gui/wxpython/iclass/frame.py      (revision 71523)
 > +++ gui/wxpython/iclass/frame.py      (working copy)
 > @@ -624,7 +624,8 @@
 >              return
 >
 >          # copy features to the temporary map
 > -        vname = self._getTempVectorName()
 > +        #vname = self._getTempVectorName()
 > +        vname = self.trainingAreaVector
 >          # avoid deleting temporary map
 >          os.environ['GRASS_VECTOR_TEMPORARY'] = '1'
 >          if digitClass.CopyMap(vname, tmp=True) == -1:
 > }}}
 >

 This allows me to open the vector file with the stored polygons. Thanks !
 In the terminal, I get messages such as:

 {{{
 G__open(read): Unable to open
 '/home/mlennert/GRASSDATA/nc_spm_08_grass7/user1/.tmp/moritz-
 ulb/vector/trAreas325320/frmt': No such file or directory
 }}}


 > For the debugging, you need to (after attaching the process) press
 Continue to release the gui, then do things in gui and it then jumps in
 qtcreator to segfaults or breakpoints.

 Thanks for the hint ! Now I can get the module to crash, but the debugger
 indicates some completely different place in the code. But probably I
 don't understand the debugging in qtcreator enough, yet.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3429#comment:5>
GRASS GIS <https://grass.osgeo.org>



More information about the grass-dev mailing list