Summary: | Krita crashes when saving as PNG | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Mark O <bugs.kde.org> |
Component: | General | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | halla, squiregrand, sven.langkamp |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/calligra/701a66ce219d708fa1f7f47106b051fe849b7ac4 | Version Fixed In: | |
Attachments: | company logo (C) that triggers a crash when saving as PNG |
Description
Mark O
2012-04-26 21:50:28 UTC
Update - it seems that this isn't confined to "Save As..." - tried copying and naming a file first, open, edit, save, crash. In frustration tried opening the file in gwenview, resize, save, then Krita and all OK. Suspect now its the library of PNG files I'm working with, which are the output of a mass EPS > PNG conversion via ghostscript "convert". In all other regards the files seem OK with a range of browsers (chrome, ff, IE) on a number of platforms, photoshop, gwenview etc. I'll attach an example file that triggers it on my machine. Created attachment 70683 [details]
company logo (C) that triggers a crash when saving as PNG
Workflow that seems to trigger a crash every time: open the file, resize it, then save it as PNG.
Confirmed. Appears to be the metadata in the file that triggers the crash. Zut... Hadn't we disabled all those metadata asserts? this is what I get on loading: krita(13056)/krita (core): Missing name attribute for tag "date" krita(13056)/krita (general): Invalid metadata name: "MaxPageSize/stDim:w" QString::arg: Argument missing: INVALID: %s, MaxPageSize/stDim:w krita(13056)/krita (general): Invalid metadata name: "MaxPageSize/stDim:h" QString::arg: Argument missing: INVALID: %s, MaxPageSize/stDim:h krita(13056): "[ 0: /usr/lib64/libkdecore.so.5(kRealBacktrace(int)+0x35) [0x7f1293535305] 1: /home/boud/kde/inst/lib64/libkritaui.so.9(+0x2d3b99) [0x7f129a56cb99] 2: /home/boud/kde/inst/lib64/libkritaui.so.9(+0x2709c3) [0x7f129a5099c3] 3: /home/boud/kde/inst/lib64/libkritaui.so.9(KisPNGConverter::buildImage(QIODevice*)+0x281b) [0x7f129a50c4eb] 4: /home/boud/kde/inst/lib64/libkritaui.so.9(KisPNGConverter::buildImage(KUrl const&)+0x1b3) [0x7f129a50e0b3] 5: /home/boud/kde/master/lib64/kde4/kritapngimport.so(+0x2cb1) [0x7f125ec4bcb1] 6: /home/boud/kde/inst/lib64/libkomain.so.9(+0xe1c76) [0x7f1299a39c76] 7: /home/boud/kde/inst/lib64/libkomain.so.9(KoFilterChain::invokeChain()+0xd9) [0x7f1299a31e29] 8: /home/boud/kde/inst/lib64/libkomain.so.9(KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&)+0x3a6) [0x7f1299a30066] 9: /home/boud/kde/inst/lib64/libkomain.so.9(KoDocument::openFile()+0x748) [0x7f12999e01c8] 10: /usr/lib64/libkparts.so.4(+0x27c8c) [0x7f129972bc8c] 11: /usr/lib64/libkparts.so.4(KParts::ReadOnlyPart::openUrl(KUrl const&)+0x164) [0x7f129972c2d4] 12: /home/boud/kde/inst/lib64/libkomain.so.9(KoDocument::openUrl(KUrl const&)+0x12d) [0x7f12999e423d] 13: /home/boud/kde/inst/lib64/libkomain.so.9(KoMainWindow::openDocumentInternal(KUrl const&, KoDocument*)+0x10f) [0x7f1299a0308f] 14: /home/boud/kde/inst/lib64/libkomain.so.9(KoMainWindow::openDocument(KoDocument*, KUrl const&)+0x1a2) [0x7f1299a019d2] 15: /home/boud/kde/inst/lib64/libkomain.so.9(KoApplication::start()+0xd56) [0x7f12999d0ab6] 16: /home/boud/kde/inst/lib64/libkdeinit4_krita.so(kdemain+0x1d8) [0x7f129b1af498] 17: /lib64/libc.so.6(__libc_start_main+0xed) [0x7f129246b23d] 18: krita() [0x400911] ] " ASSERT: "schema->propertyType(structName)" in file /home/boud/kde/src/calligra/krita/ui/kisexiv2/kis_xmp_io.cpp, line 207 ----------- Thread 1 (Thread 0x7f129b77a760 (LWP 13056)): [KCrash Handler] #6 0x00007f129247ed95 in raise () from /lib64/libc.so.6 #7 0x00007f12924802ab in abort () from /lib64/libc.so.6 #8 0x00007f129abbc9f4 in qt_message_output(QtMsgType, char const*) () from /usr/lib64/libQtCore.so.4 #9 0x00007f129abbcbaf in ?? () from /usr/lib64/libQtCore.so.4 #10 0x00007f129abbcd54 in qFatal(char const*, ...) () from /usr/lib64/libQtCore.so.4 #11 0x00007f129abbcd9a in qt_assert(char const*, char const*, int) () from /usr/lib64/libQtCore.so.4 #12 0x00007f129a56cc34 in KisXMPIO::loadFrom (this=<optimized out>, store=0x16d26f0, ioDevice=<optimized out>) at /home/boud/kde/src/calligra/krita/ui/kisexiv2/kis_xmp_io.cpp:207 #13 0x00007f129a5099c3 in (anonymous namespace)::decode_meta_data (text=<optimized out>, store=0x16d26f0, type=<optimized out>, headerSize=0) at /home/boud/kde/src/calligra/krita/ui/kis_png_converter.cpp:252 #14 0x00007f129a50c4eb in KisPNGConverter::buildImage (this=0x7fff36080840, iod=0x17d5730) at /home/boud/kde/src/calligra/krita/ui/kis_png_converter.cpp:586 #15 0x00007f129a50e0b3 in KisPNGConverter::buildImage (this=0x7fff36080840, uri=<optimized out>) at /home/boud/kde/src/calligra/krita/ui/kis_png_converter.cpp:759 #16 0x00007f125ec4bcb1 in KisPNGImport::convert (this=0x1a46320, to=<optimized out>) at /home/boud/kde/src/calligra/krita/plugins/formats/png/kis_png_import.cc:72 #17 0x00007f1299a39c76 in CalligraFilter::ChainLink::invokeFilter (this=0x17d2b40, parentChainLink=0x0) at /home/boud/kde/src/calligra/libs/main/KoFilterChainLink.cpp:90 #18 0x00007f1299a31e29 in KoFilterChain::invokeChain (this=0x1a15a70) at /home/boud/kde/src/calligra/libs/main/KoFilterChain.cpp:94 #19 0x00007f1299a30066 in KoFilterManager::importDocument (this=0x1a23260, url=..., documentMimeType=<optimized out>, status=@0x7fff360813fc) at /home/boud/kde/src/calligra/libs/main/KoFilterManager.cpp:170 #20 0x00007f12999e01c8 in KoDocument::openFile (this=0x18525d0) at /home/boud/kde/src/calligra/libs/main/KoDocument.cpp:1564 #21 0x00007f129972bc8c in ?? () from /usr/lib64/libkparts.so.4 #22 0x00007f129972c2d4 in KParts::ReadOnlyPart::openUrl(KUrl const&) () from /usr/lib64/libkparts.so.4 #23 0x00007f12999e423d in KoDocument::openUrl (this=0x18525d0, _url=...) at /home/boud/kde/src/calligra/libs/main/KoDocument.cpp:1322 #24 0x00007f1299a0308f in KoMainWindow::openDocumentInternal (this=0x1881d20, url=..., newdoc=0x18525d0) at /home/boud/kde/src/calligra/libs/main/KoMainWindow.cpp:675 #25 0x00007f1299a019d2 in KoMainWindow::openDocument (this=0x1881d20, newdoc=0x18525d0, url=...) at /home/boud/kde/src/calligra/libs/main/KoMainWindow.cpp:658 #26 0x00007f12999d0ab6 in KoApplication::start (this=<optimized out>) at /home/boud/kde/src/calligra/libs/main/KoApplication.cpp:304 #27 0x00007f129b1af498 in kdemain (argc=<optimized out>, argv=<optimized out>) at /home/boud/kde/src/calligra/krita/main.cc:63 #28 0x00007f129246b23d in __libc_start_main () from /lib64/libc.so.6 #29 0x0000000000400911 in _start () at ../sysdeps/x86_64/elf/start.S:113 And, of course, it means that distributions like ubuntu once again release packages with the asserts enabled -- which they shouldn't :-(. The backtrace I just added is a perfect example; we have the assert to tell us developers what went wrong, then there's a code to work around the problematical data. They have disabled asserts as it doesn't crash on load, but on save. There it's running into a qFatal that is still there. Ah, that's it... But is the condition really fatal? Git commit 701a66ce219d708fa1f7f47106b051fe849b7ac4 by Boudewijn Rempt. Committed on 10/05/2012 at 10:31. Pushed by rempt into branch 'master'. Don't use qFatal in the exiv2 code If there's something we don't handle in a file, we still want to load as much as possible of it, so warn, don't crash. M +3 -3 krita/ui/kisexiv2/kis_exif_io.cpp M +4 -3 krita/ui/kisexiv2/kis_exiv2.cpp M +3 -2 krita/ui/kisexiv2/kis_xmp_io.cpp http://commits.kde.org/calligra/701a66ce219d708fa1f7f47106b051fe849b7ac4 *** Bug 305907 has been marked as a duplicate of this bug. *** |