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
while executing
"file rename -force $mapfile($mon) $lfile($id)"
(procedure "GmCommonLayer::display_commands" line 31)
invoked from within
"GmCommonLayer::display_commands $namespace $id [list $cmd]"
(procedure "GmCommonLayer::display_command" line 2)
invoked from within
"GmCommonLayer::display_command [namespace current] $id $cmd"
(procedure "GmRaster::display" line 71)
invoked from within
"GmRaster::display $node $mod"
("raster" arm line 2)
invoked from within
"switch $type {
group {
GmGroup::display $node $mod
}
raster {
GmRaster::display $node $mod
}
labels {
GmLabels::disp..."
(procedure "GmTree::display_node" line 7)
invoked from within
"GmTree::display_node $n $mod"
(procedure "GmGroup::display" line 25)
invoked from within
"GmGroup::display "root" $mod"
(procedure "MapCanvas::runprograms" line 69)
invoked from within
"MapCanvas::runprograms $mon [expr {$mymodified != 0}]"
(procedure "MapCanvas::drawmap" line 38)
invoked from within
"MapCanvas::drawmap $mon"
(procedure "MapCanvas::display_server" line 9)
invoked from within
"MapCanvas::display_server"
("after" script)
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.
Maciek
-------------------------------------------- Managed by Request Tracker
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@gclements.plus.com>
I just added error trapping for trying to re-render 2 maps simultaneously.
What happens now is that the slower-rendering map just doesn't get rendered
and you have to click the render button again.
Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics and Complexity
Arizona State University
phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton
From: Request Tracker <grass-bugs@intevation.de>
Reply-To: Request Tracker <grass-bugs@intevation.de>
Date: Wed, 30 Aug 2006 17:13:30 +0200 (CEST)
To: <grass-dev@grass.itc.it>
Subject: [GRASS-dev] [bug #5076] (grass) gis.m: freeze when zooming on Map
Display 2 while Map Display 1 is being refreshed
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
while executing
"file rename -force $mapfile($mon) $lfile($id)"
(procedure "GmCommonLayer::display_commands" line 31)
invoked from within
"GmCommonLayer::display_commands $namespace $id [list $cmd]"
(procedure "GmCommonLayer::display_command" line 2)
invoked from within
"GmCommonLayer::display_command [namespace current] $id $cmd"
(procedure "GmRaster::display" line 71)
invoked from within
"GmRaster::display $node $mod"
("raster" arm line 2)
invoked from within
"switch $type {
group {
GmGroup::display $node $mod
}
raster {
GmRaster::display $node $mod
}
labels {
GmLabels::disp..."
(procedure "GmTree::display_node" line 7)
invoked from within
"GmTree::display_node $n $mod"
(procedure "GmGroup::display" line 25)
invoked from within
"GmGroup::display "root" $mod"
(procedure "MapCanvas::runprograms" line 69)
invoked from within
"MapCanvas::runprograms $mon [expr {$mymodified != 0}]"
(procedure "MapCanvas::drawmap" line 38)
invoked from within
"MapCanvas::drawmap $mon"
(procedure "MapCanvas::display_server" line 9)
invoked from within
"MapCanvas::display_server"
("after" script)
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.
Maciek
-------------------------------------------- Managed by Request Tracker