Calligraphy pen crashes on undo

Bug #488035 reported by Redskutter
50
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Inkscape
Fix Released
High
Krzysztof Kosinski

Bug Description

Selecting calligraphy pen then goto edit path by nodes, hit undo = crash ( Inkscape encountered an internal error and will close now). Every time for me. Inkscape 0.47-3

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

not reproduced with Inkscape 0.47-1 on OS X 10.5.8

Can you try with the just released Inkscape 0.47 if this error still occurs?
And please add information about your platform and any additionally configured input devices like a tablet.

tags: added: crash undo
Changed in inkscape:
status: New → Incomplete
Revision history for this message
toto (gutsunaev) wrote :

Always reproducible on winXP sp3 with version "Inkscape 0.47 r22583, built Nov 21 2009"

Revision history for this message
toto (gutsunaev) wrote :

Change a color before using calligraphy tool. It does not crash when black color is selected.

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

Changed fill and stroke color before using the calligraphic tool - still no crash with Inkscape 0.47 and r22598.
1) What are your settings for the calligraphic tools?
2) Do you edit any nodes with the node tool before the 'Undo' or just 'Undo' after switching to the node editor?
3) Can you try to rename your preferences file and test the same with default values for all settings?

Changed in inkscape:
status: Incomplete → New
Revision history for this message
toto (gutsunaev) wrote :

(Question 2): I did not edit any nodes. (Question: 3)Ok, I deleted prefrences.xml. It still crashes.
Steps:
1. Launch inkscape.
2. Select "calligraphic tool" in the left panel
3. Choose any color (but not black) from bottom panel
4. Draw something.
5. Switch to node edit (F2), you will see nodes
6. Hit Ctrl+z = crash
Instead of Ctrl+z you can open "Undo history" and click on "Unchanged"

Error message looks like:
Inkscape encountered an internal error and will close now.
Automatic backups of unsaved documents were done to the following locations:
        C:\Documents and Settings\toto\New document 1.2009_11_26_02_49_45.0.svg

Here is backtrace.

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

1) reproduced with Inkscape 0.47 on OS X 10.5.8, see attached backtrace from crash report

2) not reproduced with Inkscape 0.46+devel r22598 i.e. the recent commits (probably rev. 22592 by Johan) have fixed this bug in SVN HEAD.

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

correction:

2) reproduced with Inkscape 0.46+devel r22598 on OS X 10.5.8, after deleting preferences.xml, using 'Ctrl+z' to 'undo'

Changed in inkscape:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
su_v (suv-lp) wrote :

still present in Inkscape 0.47+devel r9395 on OS X 10.5.8

Revision history for this message
toto (gutsunaev) wrote :

Still crahes in Inkscape 0.48.0 r9654 inXP sp3 rus.

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

Related or duplicate report (not sure because with the new node tool, the backtrace differs):
Bug #792461 “Inkscape crashes when undoing caligraphic brush stroke while in edit path by node”

Revision history for this message
Andreas Becker (abecker) wrote :

Inkscape::XML::EventChgAttr::_undoOne in xml/event.cpp:166 is called for undoing. The crash occurs in the 4th call to this function after the user triggered the undo.
In the (crashing) call
   observer.notifyAttributeChanged(*this->repr, this->key, this->newval, this->oldval);
there are key = "d" (stored as a quark), newval = "" and oldval = NULL.
Inkscape crashes only in the node editor mode (F2), because the observer is set to another one and only then, _externalChange in ui/tool/path-manipulator is called. Because of d = "", there are no curves the path and _getGeometry sets _spcurve to NULL.
Possible solutions:
* do not use the NodeObserver if the nodes have not been changed by the user
* check for d == ""
* check for _spcurve == NULL
* avoid the calligraphy tool to store the event that causes the crash (do not set d = "")

If d = "" is seen as an invalid path, we should consider the last option and also forbid, that d = "" can be set in the XML editor.

jazzynico (jazzynico)
Changed in inkscape:
status: Confirmed → Triaged
Changed in inkscape:
assignee: nobody → Krzysztof Kosinski (tweenk)
status: Triaged → Fix Committed
milestone: none → 0.48.5
Changed in inkscape:
status: Fix Committed → Fix Released
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.