Details Ticket 5076


Comment | Reply | Take | Open


Serial Number 5076
Subject gis.m: freeze when zooming on Map Display 2 while Map Display 1 is being refreshed
Area grass6
Queue grass
Requestors tutey@o2.pl
Owner none
Status resolved
Last User Contact Fri Sep 22 21:43:32 2006 (2 yr ago)
Current Priority 30
Final Priority 70
Due No date assigned
Last Action Fri Sep 22 21:43:32 2006 (2 yr ago)
Created Wed Aug 30 17:13:30 2006 (2 yr ago)

Transaction History Ticket 5076


Wed, Aug 30 2006 17:13:30    Request created by guest  
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
Wed, Aug 30 2006 18:42:06    Mail sent by glynn@gclements.plus.com  
Return-Path <glynn@gclements.plus.com>
Delivered-To grass-bugs@lists.intevation.de
From Glynn Clements <glynn@gclements.plus.com>
MIME-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Transfer-Encoding 7bit
Message-ID <17653.49114.536287.133874@cerise.gclements.plus.com>
Date Wed, 30 Aug 2006 17:42:02 +0100
To Request Tracker <grass-bugs@intevation.de>
Cc grass-dev@grass.itc.it
Subject Re: [GRASS-dev] [bug #5076] (grass) gis.m: freeze when zooming on Map Display 2 while Map Display 1 is being refreshed
In-Reply-To <20060830151330.402501006BC@lists.intevation.de>
References <20060830151330.402501006BC@lists.intevation.de>
X-Mailer VM 7.07 under 21.4 (patch 15) "Security Through Obscurity" XEmacs Lucid
X-Virus-Scanned by amavisd-new at intevation.de
X-Spam-Status No, hits=-5 tagged_above=-999 required=3 tests=[BAYES_00=-5]
X-Spam-Level
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>


Wed, Aug 30 2006 18:50:06    Mail sent by michael.barton@asu.edu  
Return-Path <michael.barton@asu.edu>
Delivered-To grass-bugs@lists.intevation.de
User-Agent Microsoft-Entourage/11.2.5.060620
Date Wed, 30 Aug 2006 09:49:56 -0700
Subject Re: [GRASS-dev] [bug #5076] (grass) gis.m: freeze when zooming on Map Display 2 while Map Display 1 is being refreshed
From Michael Barton <michael.barton@asu.edu>
To Paolo Cavallini via RT <grass-bugs@intevation.de>, <grass-dev@grass.itc.it>
Message-ID <C11B0FC4.23F74%michael.barton@asu.edu>
Thread-Topic [GRASS-dev] [bug #5076] (grass) gis.m: freeze when zooming on Map Display 2 while Map Display 1 is being refreshed
Thread-Index AcbMVFJ+kQKXljhHEduAzAAUUSYxwg==
In-Reply-To <20060830151330.402501006BC@lists.intevation.de>
Mime-version 1.0
Content-type text/plain; charset="US-ASCII"
Content-transfer-encoding 7bit
X-Virus-Scanned by amavisd-new
X-Virus-Scanned by amavisd-new at intevation.de
X-Spam-Status No, hits=-3.752 tagged_above=-999 required=3 tests=[BAYES_00=-5, RCVD_NUMERIC_HELO=1.248]
X-Spam-Level
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
> 
> 


Thu, Aug 31 2006 17:20:34    Mail sent by msieczka  
michael.barton@asu.edu wrote (Wed, Aug 30 2006 18:50:06):

> 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.

I'm affraid it's still not fully fixed. Another error is issued now for the
same case:

bad window path name ".help_shell"
bad window path name ".help_shell"
    while executing
"winfo reqwidth  $_top"
    (procedure "DynamicHelp::_show_help" line 22)
    invoked from within
"DynamicHelp::_show_help .mapcan(1).mf.topf.tb0.zoomin 177 67"
    ("after" script)



And when I try to refresh display on Map Display 2 after this error, I get
another error:



couldn't open "15123.4.ppm": no such file or directory
couldn't open "15123.4.ppm": no such file or directory
    while executing
"image create photo mapimg.$mon -file "$outfile($mon)""
    (procedure "MapCanvas::composite" line 20)
    invoked from within
"MapCanvas::composite $mon"
    (procedure "MapCanvas::drawmap" line 40)
    invoked from within
"MapCanvas::drawmap $mon"
    (procedure "MapCanvas::display_server" line 9)
    invoked from within
"MapCanvas::display_server"
    ("after" script)

Refreshing the Map Display 2 the second time doesn't trigger any action...

But luckily gis.m doesn't freeze anymore now :).

Maciek
Fri, Sep 22 2006 21:43:32    Status changed to resolved by msieczka  
Fri, Sep 22 2006 21:43:32    Mail sent by msieczka  
The bug is fixed (some time ago). Thanks Michael!

Maciek
Comment | Reply | Take | Open

You are currently authenticated as guest.
[Show Configuration] [Login as another user]

Users Guide - Mail Commands - Homepage of RequestTracker 1.0.7 - list any request