Crash on moving text over path with gears effect when "Snap rotation center" or "Snap text anchor" option is enabled

Bug #931598 reported by Fanda
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
Triaged
High
Unassigned

Bug Description

After I move text over path with gear effect, Inkscape crash.

Windows 7
Inkscape 0.48+devel r10958

Revision history for this message
Fanda (fanda-cz) wrote :
Revision history for this message
su_v (suv-lp) wrote :

Not reproduced (based on the sparse 'steps to reproduce' given),
with Inkscape 0.48+devel r10958 and r10969 on OS X 10.7.2 Lion (64bit), cairo 1.10.2
both with default preferences as well as with 'Only snap node closest to the pointer' enabled.

- Can you reproduce the crash consistently?
- Have you tested with default (new) preferences?
- Does the crash appear to be triggered when snapping occurs?
- Does the crash depend on the two object types (text dragged over group, consisting of two paths with LPE applied)?

tags: added: crash
Revision history for this message
su_v (suv-lp) wrote :

Not reproduced with r10968 and cairo 1.11.2, built with FSF GCC 4.6.2 on OS X 10.7.2 (64bit)
(closer to what is used for the Windows builds with latest devlibs)

Revision history for this message
jazzynico (jazzynico) wrote :

Confirmed on Windows XP, Inkscape trunk revision 10958 and Ubuntu 11.04, trunk revision 10968.
Not reproduced with 0.48.2.

Difficult to get a backtrace (the crash completely lock the Windows manager and Inkscape needs to be killed from a console). Here's what I can get:

----
(gdb) run
Starting program: /usr/local/bin/inkscape
[Thread debugging using libthread_db enabled]
[New Thread 0xb4ed6b70 (LWP 6089)]
[New Thread 0xb44ffb70 (LWP 6090)]
terminate called after throwing an instance of 'Geom::ContinuityError'
  what(): lib2geom exception: Non-contiguous path (2geom/path.cpp:90)

Program received signal SIGABRT, Aborted.
0x0012e416 in __kernel_vsyscall ()
(gdb) bt
#0 0x0012e416 in __kernel_vsyscall ()
Cannot access memory at address 0xbfffd8c4
-----

The crash doesn't occur when the Snap other points icon is disabled.

Changed in inkscape:
importance: Undecided → High
status: New → Confirmed
tags: added: regression
summary: - Crash on moving text over path with gears efect
+ Crash on moving text over path with gears effect
Revision history for this message
su_v (suv-lp) wrote : Re: Crash on moving text over path with gears effect

Possibly related reports (random crashes when transforming objects, available backtraces indicate upstream cairo (unstable) issues):
Bug #825461 (mentions snapping too, as well as freezing of X under linux)
Bug #910100 (cairo master)

jazzynico (jazzynico)
Changed in inkscape:
status: Confirmed → Triaged
Revision history for this message
jazzynico (jazzynico) wrote :

Reproduced again on Windows XP, Inkscape trunk revision 13484.

Steps:
1. Open the file attached comment #1.
2. Select the text object.
3. Move the selected text over the path.
-> Crash (C++ runtime error)

Revision history for this message
jazzynico (jazzynico) wrote :

Reproduced again with trunk rev. 14032 on Windows XP.
Disabling both "Snap rotation center" and "Snap text anchor" options fixes the issue.

summary: - Crash on moving text over path with gears effect
+ Crash on moving text over path with gears effect when "Snap rotation
+ center" or "Snap text anchor" option is enabled
tags: added: snapping
Revision history for this message
jazzynico (jazzynico) wrote :

Other workaround: ungroup the gears.

Reduced test case (only one gear and a normal text instead of a flowed one) attached.

tags: added: groups
Revision history for this message
Alvin Penner (apenner) wrote :

attaching the message I get in Windows 7, Inkscape 0.91 r13725 (Jan 30 2015)
using the reduced test case

...................................

C:\Program Files\Inkscape>inkscape

** (inkscape.exe:3580): WARNING **: Invalid state when picking: STATE_BBOX = 0,
STATE_PICK = 0

** (inkscape.exe:3580): WARNING **: The snapmanager has been set up before, but
unSetup() hasn't been called afterwards. It possibly held invalid pointers
terminate called after throwing an instance of 'Geom::ContinuityError'
  what(): lib2geom exception: Non-contiguous path (src/2geom/path.cpp:91)

Emergency save activated!
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.

terminate called recursively

Revision history for this message
jazzynico (jazzynico) wrote :

Not reproduced on Crunchbang Waldorf, Inkscape 0.48.3.1, 0.91 and trunk rev. 14036.

Revision history for this message
su_v (suv-lp) wrote :

As with the original file, not reproduced on OS X 10.7.5 using the reduced test case from comment #8 with Inkscape 0.48.5 r10040, 0.91 r13725 and 0.91+devel r14036.

Revision history for this message
Alvin Penner (apenner) wrote :

the crash is apparently being caused by a very small amount of numerical round-off error, and that in turn is apparently caused by the scaling transform element in the group that encloses the path. Attached is the result I get when I output the difference between the two points that are calculated just before the crash:

std::cout << "diff = " << prev[0] - (*it)->initialPoint()[0] << ", " << prev[1] - (*it)->initialPoint()[1] << std::endl;

diff = -7.10543e-015, 1.42109e-014

terminate called after throwing an instance of 'Geom::ContinuityError'
  what(): lib2geom exception: Non-contiguous path (src/2geom/path.cpp:96)

The error is very small and should have been ignored. There should probably be a numerical error tolerance value for cases like this.

Revision history for this message
Alvin Penner (apenner) wrote :

alternatively it might be interesting to perform the continuity test before applying the transform, not after. So, for example, do one pass to confirm continuity, and then do a second pass to perform the actual transform.

Revision history for this message
Josie Gorham (joisie) wrote :

Encountered the issue once more on Windows XP using Inkscape trunk revision 13484.

Procedure:

Launch the file provided in comment #1.
Choose the text object.
Shift the selected text over the path.
Result: Crash (C++ runtime error).
Answer Source: https://srdsassagov.co.za/

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.