crash, while scaling the circle in this file

Bug #1270464 reported by Cojnel on 2014-01-18
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
High
Alvin Penner

Bug Description

crash, while scaling the circle in this file

1. open the file "circle_scaled_crash.svg".
2. select the circle.
3. drag any of the circles scale handles,
    while the mouse button is held down one can move the cursor around,
    the circle disappears,
    only it's center of rotation "+" is shown,
    the circles x, y, w and h inputboxes on the control bar show: "nan",
    when the mouse button is released, inkscape crashes,
    and outputs these messages to the terminal:

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

Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()

Moving, rotating or skewing the circle works,
and afterwards the circle can be scaled without inkscape crashing,
pressing undo to a point before the circle was moved, rotated or skewed,
causes a crash again if the circle is scaled.

If other objects are drawn on the canvas,
they can be transformed without any problems,
but as soon as the circle is scaled,
all objects on the canvas disappear and inkscape crashes.

A duplicate of the circle can be moved around the canvas,
but if it's snapped over the original and scaled,
then inkscape crashes.

When i tried grouping the circle
and started scaling the group,
while the mouse button was pressed,
all the x, y, w and y inputboxes on the
control bar showed: "nan",
and i thought it would crash again.

But when i released the mouse button,
the inputboxes showed:
X: 0,000 , Y: 1052,362 , W: 0,000 , H: 0,000,
and the scale handles show that the group had
moved to the top left corner of the page.

The same thing happens if one makes a
clone of the circle and scales the clone.

I'll also include the original file,
that was saved when inkscape first crashed,
just in case it has some useful info:
"circle_scaled_crash_original.svg"

In the file "circle_scaled_crash.svg",
i have removed as many things as possible one by one,
while trying to find the source of the crash.

removed:
the middle circle and the horizontal path,
turned off all snap settings,
deleted the guide,
only the circle was left on the canvas.

Tested with r12954
on linux mint 15 32bit

The circle can be scaled without
any problems in v0.48.4 r9939.

Cojnel (cojnel) wrote :
Cojnel (cojnel) wrote :
tags: removed: scaling
su_v (suv-lp) wrote :

Crash not reproduced with either file using r12954 on OS X 10.7.5 (64bit), default prefs.

Alvin Penner (apenner) wrote :

crash reproduced on Windows, Inkscape 12936, message attached:

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

Emergency save activated!

crash appears to be related to no stroke, if I give the object a stroke, I get no crash.

unfortunately my build is a bit customized, so I can't guarantee what a clean build would do.

jazzynico (jazzynico) wrote :

Not reproduced on Crunchbang Waldorf, Inkscape trunk revision 12954.

tags: added: transformations
Changed in inkscape:
importance: Undecided → High
Alvin Penner (apenner) wrote :

attached is a screenshot obtained while still dragging, before the crash. Note the absence of the ellipse and the weird numerical entries in the X, Y, W, H boxes

su_v (suv-lp) wrote :

Also tried to reproduced on Ubuntu 13.04 (VM, 64bit, host: OS X 10.7.5) with inkscape-trunk PPA r12916 and r12954:
I managed to reproduce it once with r12916 (out of roughly 10 attempts), and not at all with r12954.

Alvin Penner (apenner) wrote :

must be a weird numerical round-off error problem. I updated to rev 12954 and still get the crash. I put a tracer on the affine transform, m, which is being used just before line 90 in the code. The transform is good for a while and then goes bad just before the crash. Output below:

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

m =
A: 114 C: 0 E: 313
B: 0 D: 114 F: 425.362

m =
A: 114 C: 0 E: 313
B: 0 D: 114 F: 425.362

m =
A: nan C: 0 E: nan
B: 0 D: nan F: nan

m =
A: nan C: 0 E: nan
B: 0 D: nan F: nan

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.

Changed in inkscape:
status: New → Confirmed
Alvin Penner (apenner) wrote :

I think I probably caused this, rev 12852. Sorry about the mess, I will try to issue a fix tomorrow. The problem occurs when the stroke width is zero, or randomly slightly negative.

Alvin Penner (apenner) wrote :

fix committed to rev 12956,
put in check for small negative stroke

Changed in inkscape:
status: Confirmed → Fix Committed
su_v (suv-lp) on 2015-05-09
Changed in inkscape:
status: Fix Committed → Fix Released
assignee: nobody → Alvin Penner (apenner)
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers