Crash when using boolops LPE

Bug #258124 reported by Pablo Trabajos
2
Affects Status Importance Assigned to Milestone
Inkscape
Fix Released
Critical
Maximilian Albert

Bug Description

Use the attached file and try to move the 2nd path of the boolean LPE.

Steps:
1- Select the yellow object.
2- Open the LPE tab and select all of the nodes of the 2nd path.
3- Move the nodes around until crash (it always happens sooner or later).

Result:
0
f0[1.00292, 1.00292]
r0[1.00292, 1.00292]
added 0

Emergency save activated!

Emergency save document locations:
  New document 1.2008_08_15_12_19_53.0

Failed to do emergency save for documents:
  tv.svg
Emergency save completed. Inkscape will close now.
If you can reproduce this crash, please file a bug at www.inkscape.org
with a detailed description of the steps leading to the crash, so we can fix it.
Segmentation fault

Only once I got:
 ** (inkscape:5325): WARNING **: 110471368 bytes requested for pixel buffer, I won't try to allocate that.

** (inkscape:5325): WARNING **: 110471368 bytes requested for pixel buffer, I won't try to allocate that.

Maybe is not related. All of the tests failed in a similar way but without the pixel buffer message.

Revision history for this message
Pablo Trabajos (pajarico) wrote :
Revision history for this message
Alexandre Prokoudine (alexandre-prokoudine) wrote :
Download full text (3.4 KiB)

Confirmed with any shape other than just path:

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6186720 (LWP 27767)]
0xb7eef410 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7eef410 in __kernel_vsyscall ()
#1 0xb66f7085 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb66f8a01 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7381751 in g_assertion_message () from /usr/lib/libglib-2.0.so.0
#4 0xb7381cad in g_assertion_message_expr () from /usr/lib/libglib-2.0.so.0
#5 0x0815508e in sp_desktop_selection (desktop=0x0) at desktop-handles.cpp:29
#6 0x081b626e in sp_selected_path_to_curves (desktop=0x0, interactive=true) at path-chemistry.cpp:292
#7 0x082b4393 in Inkscape::UI::Dialog::LivePathEffectEditor::onApply (this=0xdeefc00) at ui/dialog/livepatheffect-editor.cpp:357
#8 0xb7a97985 in Glib::SignalProxyNormal::slot0_void_callback () from /usr/lib/libglibmm-2.4.so.1
#9 0xb7404aff in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#10 0xb73f7759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#11 0xb740c329 in ?? () from /usr/lib/libgobject-2.0.so.0
#12 0xb740dc1f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#13 0xb740df69 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#14 0xb75fb01a in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0
#15 0xb75fcb7e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#16 0xb7d02b14 in Gtk::Button_Class::released_callback () from /usr/lib/libgtkmm-2.4.so.1
#17 0xb7404aff in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#18 0xb73f6079 in ?? () from /usr/lib/libgobject-2.0.so.0
#19 0xb73f7759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#20 0xb740bbcb in ?? () from /usr/lib/libgobject-2.0.so.0
#21 0xb740dc1f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#22 0xb740df69 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#23 0xb75fb0aa in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0
#24 0xb75fb0d1 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#25 0xb7dc8bab in Gtk::Widget_Class::button_release_event_callback () from /usr/lib/libgtkmm-2.4.so.1
#26 0xb76d48d4 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#27 0xb73f6079 in ?? () from /usr/lib/libgobject-2.0.so.0
#28 0xb73f7759 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#29 0xb740c11a in ?? () from /usr/lib/libgobject-2.0.so.0
#30 0xb740d947 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#31 0xb740df69 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#32 0xb77f3667 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#33 0xb76cdb21 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#34 0xb76ced88 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#35 0xb7547a9a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#36 0xb735cdd6 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0xb7360193 in ?? () from /usr/lib/libglib-2.0.so.0
#38 0xb7360577 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#39 0xb76cf264 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#40 0xb7d49307 in Gtk::Main::run_impl () from /usr/lib/libgtkmm-2.4.so.1
#41 0xb7d490f2 in Gtk::Main::run () from /usr/lib/libgtkmm-2.4.so.1
#42 0x...

Read more...

Changed in inkscape:
importance: Undecided → Critical
milestone: none → 0.47
Revision history for this message
Maximilian Albert (cilix) wrote :

Fixed in SVN.

Changed in inkscape:
assignee: nobody → cilix
status: New → Fix Released
Revision history for this message
Maximilian Albert (cilix) wrote :

P.S.: Please confirm that the crash is gone since I couldn't reproduce this particular one. I'm sure I know the reason for the crash and fixed it but confirmation is alway better. :)

Revision history for this message
Maximilian Albert (cilix) wrote :

P.P.S.: Just for the record, I think the pixel buffer allocation error message is totally unrelated to this bug.

Revision history for this message
Pablo Trabajos (pajarico) wrote :

It seems to be fixed. However I still get the same messages like:

!!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 !!!!!0 0
f0[0.0768697, 0.0768697]
r0[0.0768697, 0.0768697]
added 0
f0[6.19237e-17, 4]
r0[4, 6.19237e-17]
added 9
!!!!!1 !!!!!1 0
f0[6.19237e-17, 4]
r0[4, 6.19237e-17]
added 9

...repeatedly, is this ok? It happens for some positions for the 2nd path where it glitches and the 2nd path suddenly disappears and only 1st path is visible (when i release the mouse button everything seems to get back to normal, or maybe i'm moving it slightly while releasing and a position where it glitches can be given permanently to the 2nd path with more precission).
The thing is that a very similar message seems to be appearing when i check/uncheck the visibility box, so maybe some 2nd path positions trigger the visibility of the LPE?

Another glitch is in the attached file. I tried to bend the 2nd path and the resulting figure has no sense.

Regards.

Revision history for this message
Maximilian Albert (cilix) wrote :

I very much doubt that these messages are OK. However, there is nothing I can say about them because they stem from 2geom's boolop code with which I'm completely unfamiliar. In any case they are unrelated to the crash. But I generally have the impression that boolean operations are still quite unstable in 2geom. I'd welcome, too, if this was worked on but I'd recommend opening a separate bug report for that. As for the attached file boolLPE_crash3.svg, what exactly is the problem with it?

Revision history for this message
Pablo Trabajos (pajarico) wrote :

>As for the attached file boolLPE_crash3.svg, what exactly is the problem with it?

Did you try to move the 2nd path? In my computer, in that starting position, the union of the paths is glitched with a diagonal line appearing when there is not such line in any of the paths. Try moving the 2nd path and you will see... If you can't reproduce it I will post a screenshot.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.