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 644335 - SEGV while scrolling over large SVG (attached) using eog 2.30.0-0ubuntu1
SEGV while scrolling over large SVG (attached) using eog 2.30.0-0ubuntu1
Status: RESOLVED DUPLICATE of bug 631710
Product: eog
Classification: Core
Component: general
2.30.x
Other Linux
: Normal normal
: ---
Assigned To: EOG Maintainers
EOG Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-03-09 19:54 UTC by Martin Olsson
Modified: 2011-03-10 18:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
wide SVG file that caused the SEGV (346.35 KB, image/svg+xml)
2011-03-09 19:55 UTC, Martin Olsson
Details

Description Martin Olsson 2011-03-09 19:54:22 UTC
I'm using ubuntu lucid lynx (10.04) which means I got eog "2.30.0-0ubuntu1".

I was playing around with generated SVG graphs showing the #includes in firefox when suddenly eog crashed. I think it's because the SVG happened to get really wide.

repro:
1. load SVG file
2. zoom a lot
3. scroll all the way to the left and then all the way to the right

Here is the backtrace for the SEGV:


data=0x43d480) at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmarshalers.c:84
  • #8 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.24.1/gobject/gclosure.c line 767
  • #9 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3248
  • #10 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 2991
  • #11 IA__g_signal_emit
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3038
  • #12 gtk_widget_event_internal
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkwidget.c line 4951
  • #13 IA__gtk_main_do_event
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c line 1583
  • #14 _gdk_window_process_updates_recurse
    at /build/buildd/gtk+2.0-2.20.1/gdk/gdkwindow.c line 5181
  • #15 _gdk_window_process_updates_recurse
    at /build/buildd/gtk+2.0-2.20.1/gdk/gdkwindow.c line 5154
  • #16 gdk_window_process_updates_internal
    at /build/buildd/gtk+2.0-2.20.1/gdk/gdkwindow.c line 5340
  • #17 IA__gdk_window_process_updates
    at /build/buildd/gtk+2.0-2.20.1/gdk/gdkwindow.c line 5514
  • #18 scroll_to
    at eog-scroll-view.c line 924
  • #19 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.24.1/gobject/gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3248
  • #21 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 2981
  • #22 IA__g_signal_emit
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3038
  • #23 IA__gtk_adjustment_value_changed
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkadjustment.c line 668
  • #24 gtk_range_real_change_value
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkrange.c line 3664
  • #25 _gtk_marshal_BOOLEAN__ENUM_DOUBLE
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmarshalers.c line 245
  • #26 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.24.1/gobject/gclosure.c line 767
  • #27 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3286
  • #28 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 2991
  • #29 IA__g_signal_emit
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3038
  • #30 update_slider_position
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkrange.c line 2352
  • #31 gtk_range_motion_notify
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkrange.c line 2495
  • #32 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmarshalers.c line 84
  • #33 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.24.1/gobject/gclosure.c line 767
  • #34 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3286
  • #35 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 2991
  • #36 IA__g_signal_emit
    at /build/buildd/glib2.0-2.24.1/gobject/gsignal.c line 3038
  • #37 gtk_widget_event_internal
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkwidget.c line 4951
  • #38 IA__gtk_propagate_event
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c line 2447
  • #39 IA__gtk_main_do_event
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c line 1647
  • #40 gdk_event_dispatch
    at /build/buildd/gtk+2.0-2.20.1/gdk/x11/gdkevents-x11.c line 2372
  • #41 g_main_dispatch
    at /build/buildd/glib2.0-2.24.1/glib/gmain.c line 1960
  • #42 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.24.1/glib/gmain.c line 2513
  • #43 g_main_context_iterate
    at /build/buildd/glib2.0-2.24.1/glib/gmain.c line 2591
  • #44 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.24.1/glib/gmain.c line 2799
  • #45 IA__gtk_main
    at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c line 1219
  • #46 main
    at main.c line 239

Comment 1 Martin Olsson 2011-03-09 19:55:02 UTC
Created attachment 183019 [details]
wide SVG file that caused the SEGV
Comment 2 Martin Olsson 2011-03-09 19:58:27 UTC
better repro steps:
1. click the ZOOM button on the toolbar 7 times to make the zoom level 100%
2. double click the eog window caption bar to maximize its window
3. scroll all the way to the left and then all the way to the right

These steps hit the crash 100% of the time for me. It also works if I switch the order of steps 2 and 3.

My screen res, should be relevant, is 1680x1050.
Comment 3 Felix Riemann 2011-03-10 18:29:54 UTC
Yes, there's likely two problems involved here.

First, you are right about the size. eog has problems drawing larger raster images (bug 163090). The limit is ~32k px in any direction. For 100% zoom we also used a rasterized variant of displayed SVGs in 2.32. The current development series 2.91.x (the upcoming 3.0) also renders natively at 100% so this not a limitation anymore. 

Second, 2.32.0 had a known regression regarding on how far it let you scroll your image (bug 631710). Precisely it would let you scroll too far by not setting the adjustment values of the scrollbars correctly, rendering garbage once you scrolled out of the image area. This apparently even causes a crash in the rendering code with your image. Yet, this has been fixed in 2.32.1 where I cannot reproduce this anymore while I can reproduce it with 2.32.0.

---
Thanks for taking the time to report this bug.
This particular bug has already been reported into our bug tracking system, but we are happy to tell you that the problem has already been fixed. It should be solved in the next software version. You may want to check for a software upgrade.

*** This bug has been marked as a duplicate of bug 631710 ***