Crash with erase existing path

Bug #271814 reported by Remi B
2
Affects Status Importance Assigned to Milestone
Inkscape
Fix Released
High
Johan Engelen

Bug Description

Hello,

I have a procedure to produce a crash with "erase existing path".
This problem exist on Win32 with developpement version Inkscape19870-0809171928.7z and previous version.

Procedure :
- start inkscape,
- enlarge windows,
- draw big square,
- select "erase existing path" tools,
- click on cut out from object,
- erase the square during long time without release the left mouse button (~10 s),
- release the left mouse and double click immediatly (it is important to double click during the screen refresh)
- try many time if the problem not appeared,

I have some crashs with erase tool, this procedure can help to produce easily the problem.

Also problem with erase tools, the width has no effect.

Best regards

Remi

Tags: crash eraser
Revision history for this message
nightrow (jb-benoit) wrote :

Hi,
Sorry for the late reply,
I hope that the current svn version works relatively to the bug you repported ?
Please keep us informed, so we can close this bug if the problem is solved.
thanks

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

- cannot reproduce this in Windows XP, Inkscape build 21345
- would you be willing to try a recent development build, available at :
http://inkscape.modevia.com/win32/

Changed in inkscape:
status: New → Incomplete
Revision history for this message
Remi B (remi-inconnu) wrote :

Hi,

I have downloaded the Inkscape21345-0905140303.7z, the crash is always here, see image attached...
I use pen tablet to produce it, only 20 seconds to produce it. Erase quickly (like baby scrawl) and double clic quickly after.
I can compile the last inkscape version and try it with gdb, but if I done this I have no stack trace, how can I disable the message box error (displayed in my image attached) ?.

Best regards.

Revision history for this message
jazzynico (jazzynico) wrote :

Confirmed on Ubuntu 9.04, build 21377.
But I had to click more than twice to get the bug.
Anyway, gdb gives me:

-----
Starting program: /usr/local/bin/inkscape
[Thread debugging using libthread_db enabled]
[New Thread 0xb665c740 (LWP 3266)]
**
ERROR:eraser-context.cpp:873:void accumulate_eraser(SPEraserContext*): assertion failed: (dc->cal1->get_segment_count() > 0)

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb665c740 (LWP 3266)]
0xb7ef8430 in __kernel_vsyscall ()
-----

Backtrace:

-----
#0 0xb7ef8430 in __kernel_vsyscall ()
#1 0xb69516d0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb6953098 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7170263 in IA__g_assertion_message (domain=0xb71ad45e "", file=0x884bd44 "eraser-context.cpp", line=873,
    func=0x884c280 "void accumulate_eraser(SPEraserContext*)", message=0x1352ec90 "assertion failed: (dc->cal1->get_segment_count() > 0)")
    at /build/buildd/glib2.0-2.20.1/glib/gtestutils.c:1301
#4 0xb717088d in IA__g_assertion_message_expr (domain=0x0, file=0x884bd44 "eraser-context.cpp", line=873,
    func=0x884c280 "void accumulate_eraser(SPEraserContext*)", expr=0x884bdd0 "dc->cal1->get_segment_count() > 0")
    at /build/buildd/glib2.0-2.20.1/glib/gtestutils.c:1312
#5 0x0852a23c in accumulate_eraser (dc=0xbc4e028) at eraser-context.cpp:873
#6 0x0852c415 in sp_eraser_context_root_handler (event_context=0xbc4e028, event=0xbc2aa98) at eraser-context.cpp:568
#7 0x08094d71 in sp_event_context_virtual_root_handler (event_context=0xbc4e028, event=0xbc2aa98) at event-context.cpp:934
#8 0x0850dcd7 in sp_desktop_root_handler (event=0xbc2aa98, desktop=0xaa2cdb0) at desktop-events.cpp:66
#9 0x0824a186 in sp_marshal_BOOLEAN__POINTER (closure=0xb468288, return_value=0xbff15468, n_param_values=2, param_values=0xbc20c50,
    invocation_hint=0xbff1531c, marshal_data=0x850dca0) at helper/sp-marshal.cpp:352
#10 0xb73dac7b in IA__g_closure_invoke (closure=0xb468288, return_value=0xbff15468, n_param_values=2, param_values=0xbc20c50, invocation_hint=0xbff1531c)
    at /build/buildd/glib2.0-2.20.1/gobject/gclosure.c:767
-----

Changed in inkscape:
importance: Undecided → High
status: Incomplete → Confirmed
tags: added: crash eraser
Revision history for this message
Alvin Penner (apenner) wrote :

running Windows XP, I have not produced a crash, but there is an inconsistency in how the screen responds, depending on whether you move the mouse before releasing it, or whether you perform a click/release with no move.

case 1 : with eraser tool, click down. Move the mouse and observe that the trail is red. Release the mouse and observe that the trail gets erased. The mouse subsequently leaves no trail until you click down again.

case 2 : click down and release, without moving the mouse. Now move the mouse and you get a red trail even though you are not holding the button down. Now click and release without moving the mouse, and the trail gets erased. Now move the mouse wothout holding any button down, and the trail reappears. The only way to get the behaviour back to normal is to click and then move and then release.

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

is the crash also occurring when you use a mouse, not a tablet?

Revision history for this message
jazzynico (jazzynico) wrote :

Also reproduced on Windows XP sp3, rev. 21303. Same error message.
The crash occurs when I use a mouse (didn't try with a tablet).

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

confirmed on Windows XP, build 21345.
exit message is :

C:\Program Files\Inkscape>inkscapec
C:\Program Files\Inkscape
**
ERROR:src/eraser-context.cpp:873:void accumulate_eraser(SPEraserContext*): assertion failed: (dc->cal1->get_segment_count() > 0)

Emergency save activated!

Revision history for this message
Johan Engelen (johanengelen) wrote :

Please test this again with recent trunk. I remember I fixed a related bug a while ago.
(i cannot reproduce it with r10140)

Changed in inkscape:
assignee: nobody → Johan Engelen (johanengelen)
status: Confirmed → Incomplete
Revision history for this message
jazzynico (jazzynico) wrote :

Reproduced on Windows XP, Inkscape 0.48.1 (3rd try).
Not reproduced with trunk revision 10466 (stopped after 15 tries).

I'm not 100% sure it's fixed (most code change was *just* refactoring), but I'm confident we can close the report anyway. Don't hesitate to reopen it if you run into this bug again.

Changed in inkscape:
milestone: none → 0.49
status: Incomplete → Fix Committed
Revision history for this message
Mark Purtill (i-launchpad-pigsandtoasters-hostignition-com) wrote :

I see this problem with "Inkscape 0.48.4 r9939 (Mar 20 2013)" on Gentoo linux. I also tried compiling inkscape from bzr, and have the same problem with "Inkscape 0.48+devel r12269 custom (Apr 7 2013)". The problem is sporadic, but I get the same crash with:

void accumulate_eraser(SPEraserContext*): assertion failed: (dc->cal1->get_segment_count() > 0)

I can try to get a traceback if it would be useful.

Bryce Harrington (bryce)
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.