Bug 252758 - Karbon14 crashes on long path creation
Summary: Karbon14 crashes on long path creation
Status: RESOLVED WORKSFORME
Alias: None
Product: karbon
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Debian testing Linux
: NOR crash
Target Milestone: ---
Assignee: Jan Hambrecht
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-29 14:53 UTC by Mika Pflüger
Modified: 2018-11-28 04:56 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mika Pflüger 2010-09-29 14:53:57 UTC
Application: karbon (2.2.1)
KDE Platform Version: 4.4.5 (KDE 4.4.5)
Qt Version: 4.6.3
Operating System: Linux 2.6.32-5-amd64 x86_64
Distribution: Debian GNU/Linux testing-proposed-updates (sid)

-- Information about the crash:
When I create a very long path (basically because I can't figure out how to end a path), karbon finally crashes. Sometimes the path needs to be very long (like, 100 points), but eventually it crashes.

The crash can be reproduced some of the time.

 -- Backtrace:
Application: Karbon14 (karbon), signal: Aborted
The current source language is "auto; currently asm".
[KCrash Handler]
#5  0x00007fbe6ddfc165 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#6  0x00007fbe6ddfef70 in *__GI_abort () at abort.c:92
#7  0x00007fbe6de3227b in __libc_message (do_abort=<value optimized out>, fmt=<value optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#8  0x00007fbe6de3bad6 in malloc_printerr (action=3, str=0x7fbe6def2d30 "malloc(): smallbin double linked list corrupted", ptr=<value optimized out>) at malloc.c:6267
#9  0x00007fbe6de3f3ed in _int_malloc (av=0x7fbe6e126e40, bytes=<value optimized out>) at malloc.c:4309
#10 0x00007fbe6de40930 in *__GI___libc_malloc (bytes=16) at malloc.c:3661
#11 0x00007fbe6c4bdd16 in QVector<QPointF>::malloc (this=0x7fffff09d300, asize=0, aalloc=0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:391
#12 QVector<QPointF>::realloc (this=0x7fffff09d300, asize=0, aalloc=0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:468
#13 0x00007fbe6c5756a9 in QVector<QPointF>::detach_helper (this=0x7fffff09d300, offset=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:324
#14 QVector<QPointF>::detach (this=0x7fffff09d300, offset=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:134
#15 QVector<QPointF>::data (this=0x7fffff09d300, offset=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:138
#16 QPolygonF::translate (this=0x7fffff09d300, offset=...) at painting/qpolygon.cpp:606
#17 0x00007fbe6c5763a4 in QPolygonF::translated (this=<value optimized out>, offset=...) at painting/qpolygon.cpp:632
#18 0x00007fbe6c5a4012 in QPolygonF::translated (this=0x28ea528, a=...) at ../../include/QtGui/../../src/gui/painting/qpolygon.h:180
#19 QTransform::map (this=0x28ea528, a=...) at painting/qtransform.cpp:1341
#20 0x00007fbe6c5f5c7a in QX11PaintEngine::updateState (this=0x3963a90, state=...) at painting/qpaintengine_x11.cpp:1102
#21 0x00007fbe6c540b33 in QPainterPrivate::updateStateImpl (this=0x3728690, newState=0x3a11f20) at painting/qpainter.cpp:893
#22 0x00007fbe6c540c12 in QPainterPrivate::updateState (this=0x3728690, newState=0x3a11f20) at painting/qpainter.cpp:921
#23 0x00007fbe6c54b24c in QPainter::drawRects (this=<value optimized out>, rects=0x281c170, rectCount=6) at painting/qpainter.cpp:3542
#24 0x00007fbe6c54b55c in QPainter::drawRect (this=0x7fffff09d9e0, r=..., brush=...) at ../../include/QtGui/../../src/gui/painting/qpainter.h:622
#25 QPainter::fillRect (this=0x7fffff09d9e0, r=..., brush=...) at painting/qpainter.cpp:6698
#26 0x00007fbe6c44ad3e in fillRegion (this=<value optimized out>, painter=0x7fffff09d9e0, rgn=..., flags=<value optimized out>) at kernel/qwidget.cpp:2183
#27 QWidgetPrivate::paintBackground (this=<value optimized out>, painter=0x7fffff09d9e0, rgn=..., flags=<value optimized out>) at kernel/qwidget.cpp:2218
#28 0x00007fbe6c44bc94 in QWidgetPrivate::drawWidget (this=0x3407ac0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x25a3d60) at kernel/qwidget.cpp:5341
#29 0x00007fbe6c605986 in QWidgetBackingStore::sync (this=0x25a3d60) at painting/qbackingstore.cpp:1292
#30 0x00007fbe6c43d170 in QWidgetPrivate::syncBackingStore (this=0x23fa430) at kernel/qwidget.cpp:1688
#31 0x00007fbe6c443915 in QWidget::event (this=0x256bfb0, event=0x33a7c60) at kernel/qwidget.cpp:8337
#32 0x00007fbe6c8060db in QMainWindow::event (this=0x256bfb0, event=0x33a7c60) at widgets/qmainwindow.cpp:1414
#33 0x00007fbe6ab18373 in KXmlGuiWindow::event (this=0x365d, ev=0x365d) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:131
#34 0x00007fbe6c3ed32c in QApplicationPrivate::notify_helper (this=0x23561c0, receiver=0x256bfb0, e=0x33a7c60) at kernel/qapplication.cpp:4302
#35 0x00007fbe6c3f380b in QApplication::notify (this=0x7fffff09ea30, receiver=0x256bfb0, e=0x33a7c60) at kernel/qapplication.cpp:4185
#36 0x00007fbe6aa01836 in KApplication::notify (this=0x7fffff09ea30, receiver=0x256bfb0, event=0x33a7c60) at ../../kdeui/kernel/kapplication.cpp:302
#37 0x00007fbe6d04d0bc in QCoreApplication::notifyInternal (this=0x7fffff09ea30, receiver=0x256bfb0, event=0x33a7c60) at kernel/qcoreapplication.cpp:726
#38 0x00007fbe6d050764 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x2333790) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#39 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x2333790) at kernel/qcoreapplication.cpp:1367
#40 0x00007fbe6d076b93 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#41 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#42 0x00007fbe6769f6f2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#43 0x00007fbe676a3568 in ?? () from /lib/libglib-2.0.so.0
#44 0x00007fbe676a371c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#45 0x00007fbe6d0766d3 in QEventDispatcherGlib::processEvents (this=0x2333390, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#46 0x00007fbe6c49d18e in QGuiEventDispatcherGlib::processEvents (this=0x365d, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#47 0x00007fbe6d04b9e2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#48 0x00007fbe6d04bdbc in QEventLoop::exec (this=0x7fffff09e9e0, flags=) at kernel/qeventloop.cpp:201
#49 0x00007fbe6d050a4b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#50 0x00007fbe6e12bddf in kdemain () from /usr/lib/kde4/libkdeinit/libkdeinit4_karbon.so
#51 0x00007fbe6dde8c4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fffff09ebc8) at libc-start.c:228
#52 0x0000000000400679 in _start ()

Possible duplicates by query: bug 236519, bug 232041, bug 216620, bug 213648, bug 212154.

Reported using DrKonqi
Comment 1 Cyrille Berger 2010-10-03 12:18:48 UTC
I can't reproduce. Otherwise to end a path, you can right click, or double-click.
Comment 2 Mika Pflüger 2010-10-03 19:01:34 UTC
Hi,

well I re-tried and I think I found some hints:
1. I can create long paths with the mouse without karbon crashing.
2. I can end paths with the mouse by right-clicking or double-clicking.
3. I can _not_ end paths by right-clicking or double-clicking with my graphics tablet. I use a graphics tablet as X input device, it is the wacom bamboo pen & touch:
$ xinput list                         
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Pen eraser        id=9    [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Pen stylus        id=10   [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Finger pad        id=11   [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Finger touch      id=12   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=15   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=17   [slave  pointer  (2)]
⎜   ↳ Dell Dell USB Optical Mouse               id=19   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ LITE-ON Technology USB NetVista Full Width Keyboard.      id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=16   [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=18   [slave  keyboard (3)]

I try double-clicking by tipping with the pen twice and right-clicking with the appropriate button at the pen (it is mapped to right-click and this works in other applications as well as in e.g. krita). The mapping does not work at all in karbon. Every right-click is interpreted as a click.
4. If I create long paths with the tablet pen by mixing right and left clicks it sometimes crashes.
5. If I create a path with the tablet pen and try to end the very same path with my mouse by right-clicking, it always crashes - not immediately, but by mixing mouse movements and pen movements I can get a crash in under 20 seconds.

The behavious is also rather strange: I create a path with the tablet, the path is shown while drawing. Then I right-click with the mouse. If karbon does not crash, the path disappears, I can move the pointer with the mouse. If I then move the pointer with the tablet, the path reappears. I can make it appear and disappear by either using the mouse or the tablet. Eventually, karbon crashes.

It seems that karbon uses different virtual pointers or seomething, epending on wether I use the mouse or the tablet. And when using the tablet, it crashes after some time of usage.
Comment 3 Mika Pflüger 2010-10-03 19:03:16 UTC
Hi,

well I re-tried and I think I found some hints:
1. I can create long paths with the mouse without karbon crashing.
2. I can end paths with the mouse by right-clicking or double-clicking.
3. I can _not_ end paths by right-clicking or double-clicking with my graphics tablet. I use a graphics tablet as X input device, it is the wacom bamboo pen & touch:
$ xinput list                         
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Pen eraser        id=9    [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Pen stylus        id=10   [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Finger pad        id=11   [slave  pointer  (2)]
⎜   ↳ Wacom BambooFun 2FG 4x5 Finger touch      id=12   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=15   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=17   [slave  pointer  (2)]
⎜   ↳ Dell Dell USB Optical Mouse               id=19   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ LITE-ON Technology USB NetVista Full Width Keyboard.      id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=16   [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=18   [slave  keyboard (3)]

I try double-clicking by tipping with the pen twice and right-clicking with the appropriate button at the pen (it is mapped to right-click and this works in other applications as well as in e.g. krita). The mapping does not work at all in karbon. Every right-click is interpreted as a click.
4. If I create long paths with the tablet pen by mixing right and left clicks it sometimes crashes.
5. If I create a path with the tablet pen and try to end the very same path with my mouse by right-clicking, it always crashes - not immediately, but by mixing mouse movements and pen movements I can get a crash in under 20 seconds.

The behavious is also rather strange: I create a path with the tablet, the path is shown while drawing. Then I right-click with the mouse. If karbon does not crash, the path disappears, I can move the pointer with the mouse. If I then move the pointer with the tablet, the path reappears. I can make it appear and disappear by either using the mouse or the tablet. Eventually, karbon crashes.

It seems that karbon uses different virtual pointers or seomething, epending on wether I use the mouse or the tablet. And when using the tablet, it crashes after some time of usage.

Hope that helps. If you have a more specific testcase or something, please do not hesitate to ask, I will try to provide all needed information.

Cheers and thanks for your work,

Mika
Comment 4 Jan Hambrecht 2010-12-28 23:37:50 UTC
Yes karbon, and the other applications of the suite too, has different tools for different input devices. So using the mouse and the tablet alternatingly will switch between tools. That causes the path to disappear when using the mouse after the tablet.
Unfortunately I have no tablet to actually reproduce and fix the problem.
Comment 5 Andrew Crouthamel 2018-10-29 22:34:36 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 6 Bug Janitor Service 2018-11-13 14:28:10 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 7 Bug Janitor Service 2018-11-28 04:56:52 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!