[GRASS-dev] gis.m crashes on zoom-out

Hamish hamish_nospam at yahoo.com
Thu Apr 5 10:18:49 EDT 2007


> Hamish wrote:
> > found a bug in gis.m zoom out tool.
> > 
> > start gis.m, select zoom out, draw a box, and poof! gis.m crashes.
> > 
> > happens always in a lat long location when you zoom out past 90NS
> > 180EW view or a bit harder to trigger in spearfish, but crashes on
> > the 4th or 5th zoom out when the rows*cols gets to be something
> > silly like 500e6*500e6.
> > 
> > 
> > presumably g.region exits with an error which isn't handled well.

Glynn Clements wrote:
> Yep.
> 
> If you spawn a child process with "open |...", any errors are reported
> by way of the corresponding "close" throwing an exception. Tcl's
> definition of "error" includes anything being written to stderr (so
> any warnings are treated as errors), as well as a non-zero exit code.
> 
> Any calls to "close" on a subprocess pipe should be enclosed in a
> catch statement.


gui/tcltk/gis.m$ grep close * | grep -v catch


finds this one in georect.tcl
  proc GRMap::zoom_gregion { args} {

and in histogram.tcl:
  proc GmHist::display { node mod } {

and in rastnums.tcl:
  proc GmRnums::display { node mod } {

and in runandoutput.tcl:
  proc guarantee_xmon {} {


..maybe more?


I don't see the open|g.region in mapcanvas.tcl which triggers this bug?

I seem to remember the georect tool crashing gis.m had been reported.

No time right now to actually fix these myself.


Hamish




More information about the grass-dev mailing list