Comment 12 for bug 1284391

Revision history for this message
David Mathog (mathog) wrote : Re: PDF import of file mangles GUI

I have narrowed the problem down to a couple of lines in one of the toxic SVGs, attached.

If this

       <g id="g26"
           clip-path="url(#clipPath16)">
          <path
               id="path30"
               style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
               d="m 0,150 100,0 0,-200 -100,0 0,200 z" />
        </g>

is changed to just

          <path
               id="path30"
               style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
               d="m 0,150 100,0 0,-200 -100,0 0,200 z" />

then the problem goes away. So there appears to be an issue with clipping, probably an infinite loop.
 Using gdb and hitting control-C while stuck after loading the toxic one, bt always showed this:

#0 0x00132416 in __kernel_vsyscall ()
#1 0x019da460 in __GI___poll (fds=0xbfffeed8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2 0x01d28120 in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1
#3 0x01d29a60 in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1
#4 0x01d29d17 in xcb_wait_for_reply () from /usr/lib/i386-linux-gnu/libxcb.so.1
#5 0x014b1682 in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6
#6 0x014a6d23 in XQueryPointer () from /usr/lib/i386-linux-gnu/libX11.so.6
#7 0x00a10199 in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0
#8 0x009bb0ae in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0
#9 0x009deba7 in gdk_window_get_pointer () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0
#10 0x08304765 in SPCanvasImpl::sp_canvas_paint_rect (canvas=0x9fd7040, xx0=32, yy0=-480, xx1=176, yy1=-384) at display/sp-canvas.cpp:2103
#11 0x08304d36 in SPCanvasImpl::paint (canvas=0x9fd7040) at display/sp-canvas.cpp:2260
#12 0x08304e67 in SPCanvasImpl::do_update (canvas=0x9fd7040) at display/sp-canvas.cpp:2295
#13 0x08304ed8 in SPCanvasImpl::idle_handler (data=0x9fd7040) at display/sp-canvas.cpp:2311
#14 0x009b8f88 in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0
#15 0x01315810 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#16 0x01317d46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#17 0x013180e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#18 0x0131852b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0
#19 0x00671b8f in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
#20 0x00302194 in Gtk::Main::run_impl() () from /usr/lib/i386-linux-gnu/libgtkmm-2.4.so.1
#21 0x00302bcf in Gtk::Main::run() () from /usr/lib/i386-linux-gnu/libgtkmm-2.4.so.1
#22 0x08087888 in sp_main_gui (argc=1, argv=0xbffff6d4) at main.cpp:1097
#23 0x08086ef0 in main (argc=1, argv=0xbffff6d4) at main.cpp:812

When inkscape was running normally with a nontoxic version of the same image this was never seen. Those always looked like this:

#0 0x00132416 in __kernel_vsyscall ()
#1 0x019da460 in __GI___poll (fds=0xb7a97e0, nfds=3, timeout=33) at ../sysdeps/unix/sysv/linux/poll.c:87
#2 0x01325a3b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3 0x0131806e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4 0x0131852b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5 0x00671b8f in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
#6 0x00302194 in Gtk::Main::run_impl() () from /usr/lib/i386-linux-gnu/libgtkmm-2.4.so.1
#7 0x00302bcf in Gtk::Main::run() () from /usr/lib/i386-linux-gnu/libgtkmm-2.4.so.1
#8 0x08087888 in sp_main_gui (argc=1, argv=0xbffff6d4) at main.cpp:1097
#9 0x08086ef0 in main (argc=1, argv=0xbffff6d4) at main.cpp:812