After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 91583 - Crash when scrolling in nautilus with canvas speedup patch
Crash when scrolling in nautilus with canvas speedup patch
Status: RESOLVED FIXED
Product: libgnomecanvas
Classification: Deprecated
Component: core
CVS HEAD
Other other
: Normal normal
: ---
Assigned To: libgnomecanvas maintainers
Federico Mena Quintero
: 102811 103241 105486 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-08-24 09:51 UTC by Richard Hult
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Richard Hult 2002-08-24 09:51:47 UTC
The recent canvas speedup commit on HEAD doesn't seem to work correctly.I
get a failed assertion in gnome-canvas when changing to a directory with
images and scrolling down (appears to work for most directories though).

GnomeCanvas-ERROR **: file gnome-canvas.c: line 3675
(gnome_canvas_request_redraw_uta): assertion failed: (canvas->idle_id != 0)
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 1024 (LWP 30108)

  • #0 g_logv
  • #1 g_log
  • #2 gnome_canvas_request_redraw_uta
    at gnome-canvas.c line 3675
  • #3 gnome_canvas_expose
    at gnome-canvas.c line 3061
  • #4 expose_event
    at nautilus-icon-container.c line 3102
  • #5 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 82
  • #6 g_type_class_meta_marshal
    at gclosure.c line 514
  • #7 g_closure_invoke
    at gclosure.c line 437
  • #8 signal_emit_unlocked_R
    at gsignal.c line 2379
  • #9 g_signal_emit_valist
    at gsignal.c line 2110
  • #10 gtk_signal_emit
    at gtksignal.c line 355
  • #11 gtk_widget_event_internal
    at gtkwidget.c line 3082

Comment 1 Richard Hult 2003-01-16 16:43:04 UTC
FYI, this is also triggered by evo2 and other apps that use the canvas.
Comment 2 Ross Burton 2003-01-16 17:03:07 UTC
*** Bug 103241 has been marked as a duplicate of this bug. ***
Comment 3 Alexander Larsson 2003-01-17 08:40:17 UTC
*** Bug 102811 has been marked as a duplicate of this bug. ***
Comment 4 Alexander Larsson 2003-01-22 10:56:00 UTC
I looked into this a bit. Reproducing using gnome-mahjongg showed at
least one way this assert can be falsely triggered:

gnome_canvas_update_now ()
  remove_idle()
  do_update()
    gnome_canvas_item_invoke_update()
      some_canvas_item_update()
        gnome_canvas_request_redraw_uta()
          need_update still true, but idle_id == 0 => assert failure

However, all the nautilus backtraces are of the form
widget updates -> expose event -> gnome_canvas_request_redraw_uta()
with idle_id = 0 but need_update == 1. 
I'm not sure how that happens, or whether ignoring this fact can cause
updates or redraws to be missed. 

But i *think* just removing the assert is safe and correct.
Comment 5 Alexander Larsson 2003-01-22 11:30:22 UTC
I removed the assert in CVS and added a largish comment.
Comment 6 John Fleck 2003-02-07 15:55:24 UTC
*** Bug 105486 has been marked as a duplicate of this bug. ***
Comment 7 Marius Andreiana 2003-02-09 11:22:59 UTC
There are still problems. With an application (gcompris) that works
fine with libgnomecanvas from gnome 2.0, I got the crashes due to
assert in gnome 2.2rc1 and now, with gnome 2.2, there are no crashes
but parts of screen aren't updated anymore. I looked on the
libgnomecanvas code but I couldn't find the problem :(
Comment 8 Olivier Samyn 2003-02-10 13:56:39 UTC
Trying also to get gcompris running on gnome 2.2 I took a look at the
code and found some issues about the drawings updates.

I don't pointed out where the gnomecanvas code didn't work, but I got
some examples working after adding a
"gnome_canvas_update_now(canvas);" call.

I noticed that the gnome-canvas example called:
"demos/canvas-fifteen.c" don't work with the 2.2.0.1 version.
By adding a "gnome_canvas_update_now(canvas)" around line 117 I got it
working.

Similar problems occurs in various pices of code in gcompris (but not
allways after a item move).

So, this is my experience, I don't had time to look furter into
gnomecanvs code so I made a temporary patch to gcompris but...
It seems that the behaviour of gnomecanvas have changed. Is this a bug
or a feature ?
Comment 9 Kjartan Maraas 2004-01-20 13:08:22 UTC
Has this changed in later releases?
Comment 10 Kjartan Maraas 2004-01-20 13:31:17 UTC
And is bug #106145 a duplicate of this?
Comment 11 Richard Hult 2004-01-20 13:34:03 UTC
I haven't seen this crash in a long time in evo2 (nautilus doesn't use
the canvas anymore). The update problems I don't know about.
Comment 12 Kjartan Maraas 2004-01-23 20:49:13 UTC
Ok. No reports of crashes and the update logic was fixed in 2.3.0.
Closing.