[GRASS-dev] [bug #5076] (grass) gis.m: freeze when zooming on Map Display 2 while Map Display 1 is being refreshed

Glynn Clements glynn at gclements.plus.com
Wed Aug 30 12:42:02 EDT 2006


Request Tracker wrote:

> this bug's URL: http://intevation.de/rt/webrt?serial_num=5076
> -------------------------------------------------------------------------
> 
> Subject: gis.m: freeze when zooming on Map Display 2 while Map Display 1 is being refreshed
> 
> Platform: GNU/Linux/x86
> grass obtained from: CVS
> grass binary for platform: Compiled from Sources
> GRASS Version: 2006-08-29
> 
> In spearfish60.
> 
> 1. $ grass63 -text
> 2. $ g.region rast=slope res=1 -a
> (setting res to 1 to slow down the display to make the bug easy to reproduce)
> 
> 3. $ gis.m
> 4. add some raster, display it
> 5. start Map Display 2, add another raster
> 6. refresh Map Display 2 and try to press 'zoom in' on Map Display 1 while Map Display 2 is being refreshed - the outcome is:
> 
> error renaming "/home/grassdata/spearfish60/sieczka/.tmp/sorbus/15530.0.ppm": no such file or directory
> error renaming "/home/grassdata/spearfish60/sieczka/.tmp/sorbus/15530.0.ppm": no such file or directory

> gis.m freezes, I have to kill -9 it's wish.
> 
> I'm not saying that zooming on one display while the other is being
> refreshed must work (I don't think it is critical), but if the user
> tries to do such a thing (it's likely - the refresh takes long on Map
> Display 1, so he decides to use Map Display 2 in the meantime) it
> cannot result in a complete freeze of gis.m.

It's likely that something is calling update when it probably
shouldn't. The gronsole code is the first place I'd look.

Just in case I haven't already made this point often enough in
relation to NVIZ: calling Tcl's "update" function is REALLY dangerous.

Unless you are going to check every single event handler to ensure
that:

a) the event handler will operate correctly when called at that point, AND
b) executing the event handler will not interfere with the code which
called update,

then: DON'T call "update".

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list