Summary: | Trying to open svg crashes | ||
---|---|---|---|
Product: | [Unmaintained] koffice | Reporter: | Kubuntiac <user581> |
Component: | flake | Assignee: | KOffice Bug Wranglers <koffice-bugs-null> |
Status: | RESOLVED UNMAINTAINED | ||
Severity: | crash | CC: | cfeck |
Priority: | NOR | ||
Version: | git | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | SVG from Blender which crashes Krita on import |
Description
Kubuntiac
2010-05-19 06:56:33 UTC
Created attachment 43708 [details]
SVG from Blender which crashes Krita on import
The crash is actually an assert inside KOffice's core flake library. Krita cannot load .svg directly, I think think it's converted to .odg first -- and if that would succeed, it might be converted to something else again, since I doubt it will be imported as a vector layer at the moment. I'm fairly sure we actually use Karbon's svg filter in this procedure. I get the assert when opening with karbon as well. Cyrille; is the crash you get in karbon also showing this in the backtrace; koffice/filters/karbon/png/PngExport.cpp:70 either way; I suggest re-assigning to karbon filters. Nope, here is the backtrace: #0 0x00007ffff19a0165 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00007ffff19a2f70 in *__GI_abort () at abort.c:92 #2 0x00007ffff2ceef8f in qt_message_output (msgType=QtFatalMsg, buf=<value optimized out>) at global/qglobal.cpp:2259 #3 0x00007ffff2cef132 in qt_message (msgType=QtFatalMsg, msg=0x7ffff2e4f708 "ASSERT: \"%s\" in file %s, line %d", ap=0x7fffffffc7a0) at global/qglobal.cpp:2305 #4 0x00007ffff2cef2e5 in qFatal (msg=0x7811 <Address 0x7811 out of bounds>) at global/qglobal.cpp:2488 #5 0x00007ffff692135c in KoRTree<KoShape*>::splitNode (this=<value optimized out>, node=0x3b25328) at /home/cyrille/Projects/kde4/src/koffice/libs/flake/KoRTree.h:562 #6 0x00007ffff6922839 in KoRTree<KoShape*>::insertHelper (this=0x3b1f600, bb=<value optimized out>, data=@0x7fffffffca78, id=4) at /home/cyrille/Projects/kde4/src/koffice/libs/flake/KoRTree.h:388 #7 0x00007ffff6918efa in KoShapeManager::addShape (this=0x3b24fa0, shape=0xad9f30, repaint=KoShapeManager::PaintShapeOnAdd) at /home/cyrille/Projects/kde4/src/koffice/libs/flake/KoShapeManager.cpp:220 #8 0x00007ffff69191a5 in KoShapeManager::setShapes (this=0x3b24fa0, shapes=..., repaint=KoShapeManager::PaintShapeOnAdd) at /home/cyrille/Projects/kde4/src/koffice/libs/flake/KoShapeManager.cpp:208 #9 0x00007ffff79c1133 in KarbonCanvas (this=0x3b3db80, p=<value optimized out>) at /home/cyrille/Projects/kde4/src/koffice/karbon/ui/widgets/KarbonCanvas.cpp:92 #10 0x00007ffff79ad75b in KarbonView (this=0xb085c0, p=0x7d2e60, parent=<value optimized out>, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/cyrille/Projects/kde4/src/koffice/karbon/ui/KarbonView.cpp:200 #11 0x00007ffff79a2e9e in KarbonPart::createViewInstance (this=0x7d2e60, parent=<value optimized out>) at /home/cyrille/Projects/kde4/src/koffice/karbon/ui/KarbonPart.cpp:170 #12 0x00007ffff745bc0a in KoDocument::createView (this=0x7811, parent=0x7811) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoDocument.cpp:428 #13 0x00007ffff7489a29 in KoMainWindow::setRootDocument (this=0x743a70, doc=0x7d2e60) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoMainWindow.cpp:464 #14 0x00007ffff748c7af in KoMainWindow::slotLoadCompleted (this=0x743a70) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoMainWindow.cpp:714 #15 0x00007ffff74901f0 in KoMainWindow::qt_metacall (this=0x743a70, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffd100) at /home/cyrille/Projects/kde4/build/koffice/libs/main/KoMainWindow.moc:169 #16 0x00007ffff2e016d7 in QMetaObject::activate (sender=0x7d2e60, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #17 0x00007ffff71ac315 in KParts::ReadOnlyPart::openUrl (this=0x7d2e60, url=<value optimized out>) at ../../kparts/part.cpp:560 #18 0x00007ffff7465acc in KoDocument::openUrl (this=0x7d2e60, _url=...) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoDocument.cpp:1251 #19 0x00007ffff74881ef in KoMainWindow::openDocumentInternal (this=0x743a70, url=..., newdoc=0x7d2e60) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoMainWindow.cpp:679 #20 0x00007ffff74892c2 in KoMainWindow::openDocument (this=0x743a70, newdoc=0x7d2e60, url=...) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoMainWindow.cpp:662 #21 0x00007ffff7454632 in KoApplication::start (this=<value optimized out>) at /home/cyrille/Projects/kde4/src/koffice/libs/main/KoApplication.cpp:252 #22 0x00007ffff7bddf46 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /home/cyrille/Projects/kde4/src/koffice/karbon/main.cc:47 #23 0x00007ffff198cc4d 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=0x7fffffffdea8) at libc-start.c:228 #24 0x0000000000400829 in _start () I am unconvinced that the bug is in karbon, there is little evidence for that at the moment. The backtrace in the context of this bug tells me that the boundingrect of a KoPathShape was invalid (likely containing NaN). There are two ways this can happen; one is the shape was manipulated (sheared etc) incorrectly from flake or other code. With values that were NaN. The other is that the karbon SVG parser is doing something wrong. see koffice/filters/karbon/svg/SvgParser.cpp I'm placing my bets on the latter. Anyone investigating will want to check calls to KoShape::setTransformation and check if the argument is a valid transform. For example by doing; #include <qnumeric.h> QPointF p = matrix.map(QPointF(10, 100)); Q_ASSERT(!(qIsNaN(p.x()) || qIsNaN(p.y()))); Thank you for your bug report or feature suggestion. The "KOffice" application suite is no longer maintained, and all tickets are now closed. We recommend to switch to the "Calligra" application suite, which has replacements for all unmaintained KOffice applications: - KWord was replaced with Calligra Words - KPlato was replaced with Calligra Plan For more information, see http://en.wikipedia.org/wiki/Calligra_Suite (This is an automatic message from the KDE bug triaging team) |