[GRASS-dev] [GRASS GIS] #3309: Avoid errors in parallel creation of tempfiles

GRASS GIS trac at osgeo.org
Tue Mar 7 05:04:20 PST 2017


#3309: Avoid errors in parallel creation of tempfiles
--------------------------+---------------------------------
  Reporter:  sbl          |      Owner:  grass-dev@…
      Type:  enhancement  |     Status:  new
  Priority:  normal       |  Milestone:  7.2.1
 Component:  LibGIS       |    Version:  svn-releasebranch72
Resolution:               |   Keywords:  G_tempfile()
       CPU:  Unspecified  |   Platform:  Unspecified
--------------------------+---------------------------------

Comment (by mmetz):

 Replying to [comment:1 mlennert]:
 > Replying to [ticket:3309 sbl]:
 > > When tempfiles are created in parallel, conflicts and thus fatal
 errors can arise when two processes try to create the .tmp/HOST dir at the
 same time:
 > > https://lists.osgeo.org/pipermail/grass-dev/2017-March/084471.html
 > >
 > > The conflict seems to arise only from the directory.
 > >
 > > So, maybe it could help if the directory is created at the start of a
 GRASS session and removed only when the GRASS session is closed (exit)?
 >
 > Now that you mention it, I can confirm that I've also been confronted to
 such errors when running commands in parallel that create temp files. So
 +1 to needing a solution.

 Strange. When starting GRASS in text or GUI mode, the .tmp/HOST folder is
 automatically created, i.e. the error
 {{{
 ERROR: Unable to make mapset element .tmp/HOST
 (/grassdata/ETRS_33N/timseries/.tmp): File exists
 }}}
 should not happen, at least not in trunk and relb72.
 >
 > I don't know though if the best is to create this directory once and for
 all at the startup, or whether the tempfile routines in lib/gis/tempfile.c
 could be modified to avoid such race conditions.

 You could use
 {{{
 rm -f "`g.tempfile pid=$$`"
 }}}
 before running xargs, just to make sure that .tmp/HOST has been created.

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



More information about the grass-dev mailing list