[GRASS-dev] [GRASS GIS] #2230: 'g.region -p' writes new WIND file, causes race condition for parallel jobs
    GRASS GIS 
    trac at osgeo.org
       
    Wed Mar 26 10:09:14 PDT 2014
    
    
  
#2230: 'g.region -p' writes new WIND file, causes race condition for parallel jobs
----------------------+-----------------------------------------------------
 Reporter:  hamish    |       Owner:  grass-dev@…              
     Type:  defect    |      Status:  new                      
 Priority:  normal    |   Milestone:  6.4.4                    
Component:  Default   |     Version:  svn-develbranch6         
 Keywords:  g.region  |    Platform:  Linux                    
      Cpu:  x86-64    |  
----------------------+-----------------------------------------------------
Comment(by glynn):
 Replying to [ticket:2230 hamish]:
 > In tracking down some strangeness I've just noticed that 'g.region -p'
 or 'g.region -g' writes out a new (unchanged) WIND file whenever it runs.
 It does this whenever it runs without the -u flag.
 One problem is that printing and setting are not mutually exclusive, i.e.
 you can both modify and print the current region. For example, the command
 {{{
 g.region -p res=10
 }}}
 will set the resolution to 10 units, write the modified region to the WIND
 file (or the region named by $WIND_OVERRIDE), and print the updated
 region.
 Other problems are:
  * The region is adjusted (by G_adjust_Cell_head3) before writing it, so
 the WIND file may actually be changed by running g.region with no
 arguments (or just with -p/-g).
  * The region may not even be read from the WIND file (or the region named
 by $WIND_OVERRIDE). If GRASS_REGION is set, the region will be read from
 that variable, but writes still go to WIND or $WIND_OVERRIDE.
 In short, simply skipping the G_put_window() call based upon which
 arguments are given (other than -u) would constitute a change to existing
 behaviour. You can't assume that the updated region will be identical to
 the previous region based solely upon which arguments are given.
 I think that the issue is essentially that people don't realise that
 g.region always sets the region unless -u is given. Even without any
 options which explicitly modify the region, it uses $GRASS_REGION if that
 is set, and adjusts the region before writing it. IOW, "g.region -p"
 doesn't "print the region", it "sets and prints the region"; "g.region
 -pu" prints (and only prints) the region.
-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/2230#comment:2>
GRASS GIS <http://grass.osgeo.org>
    
    
More information about the grass-dev
mailing list