| Summary: | Gwenview: Crashes when attempting to parse an svg file | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Darrell <darrella> |
| Component: | non-core programs | Assignee: | Timothy Pearson <kb9vqf> |
| Status: | NEW --- | ||
| Severity: | normal | CC: | bugwatch, darrella, michele.calgaro |
| Priority: | P1 | ||
| Version: | R14.0.x [Trinity] | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | Gwenview | |
| Bug Depends on: | |||
| Bug Blocks: | 2968 | ||
Additional information: Proper behaviour for an SVG parser encountering an error is specified at: http://www.w3.org/TR/2001/REC-SVG-20010904/implnote.html#ErrorProcessing Firefox preview opens the svgz file without incident but provides some information about the file. From the developer's mail list: ====================================================== XML Parsing Error: prefix not bound to a namespace Location: http://git.trinitydesktop.org/cgit/gwenview/plain/src/gvdirpart/crsc-app-gvdirpart.svg Line Number 156, Column 36: id="stop788" /></linearGradient><path In other words, there's something wrong with the syntax of the SVG file. Judging from the header boilerplate, it was created by Inkscape's predecessor Sodipodi, and probably predates the finalization of the standard. I *think* the problem is actually on the next line ( a:adobe-blending-mode="screen" ) with the a: being the unrecognized namespace prefix. Resaving it probably caused this unparseable nonstandard attribute to be dropped. ====================================================== The existing svgz should be used to patch gwenview from crashing, but thereafter the file might also need some tweaks to repair. Or use karbon to resave the image. The imagemagick utility 'identify' has no problem inspecting src/gvdirpart/crsc-app-gvdirpart.svg: identify -verbose crsc-app-gvdirpart.svg | grep error Therefore I believe the image is fine and only gwenview that is buggy. I confirm this bug. The crash is in 00007feeb99f975d in DOM::Document::createElementNS (this=<optimized out>, namespaceURI=..., qualifiedName=...) which is during the parsing of the svg file. The problem may not be in gwenview itself but on a library function. Interestingly, Firefox fails to open the same image as well: XML Parsing Error: prefix not bound to a namespace Location: file:///home/tde_src/1_git/tde/main/applications/gwenview/src/gvdirpart/crsc-app-gvdirpart.svg Line Number 156, Column 36: id="stop788" /></linearGradient><path -----------------------------------^ while it has no problem to open hisc-app-gvdirpart.svg in the same folder. BTW, where has the CONFIRMED status gone in bugszilla? |
Gwenview crashes when attempting to view one of its own svg files: gwenview/src/gvdirpart/crsc-app-gvdirpart.svg In addition to addressing the gwenview crash, possibly the file possibly needs repair. Karbon opens the same file without error. That leaves open the question of whether the file is corrupt. The problem probably is not solely gwenview but also the ksvg viewer from tdegraphics, which gwenview uses. Possibly then both apps need patching. Here is a backtrace of the crash: [Thread debugging using libthread_db enabled] [KCrash handler] #5 0xb6109a67 in raise () from /lib/libc.so.6 #6 0xb610b2e2 in abort () from /lib/libc.so.6 #7 0xb633ef5f in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6 #8 0xb633ce95 in ?? () from /usr/lib/libstdc++.so.6 #9 0xb633ced2 in std::terminate() () from /usr/lib/libstdc++.so.6 #10 0xb633d011 in __cxa_throw () from /usr/lib/libstdc++.so.6 #11 0xb4e773cf in DOM::Document::createElementNS (this=0x80e2a68, namespaceURI=..., qualifiedName=...) at /dev/shm/tdelibs/khtml/dom/dom_doc.cpp:248 #12 0xb540332c in KSVG::InputHandler::startElement (this=0x83d1538, namespaceURI=..., qName=..., attrs=...) at /dev/shm/tdegraphics/ksvg/core/KSVGReader.cc:281 #13 0xb6961e90 in TQXmlSimpleReader::processElementEmptyTag (this=0x83d0e58) at xml/qxml.cpp:3522 #14 0xb69634ac in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3492 #15 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #16 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #17 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #18 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #19 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #20 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #21 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #22 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #23 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #24 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #25 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #26 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #27 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #28 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #29 0xb6963af9 in TQXmlSimpleReader::parseContent (this=0x83d0e58) at xml/qxml.cpp:3943 #30 0xb6963469 in TQXmlSimpleReader::parseElement (this=0x83d0e58) at xml/qxml.cpp:3471 #31 0xb6964169 in TQXmlSimpleReader::parseBeginOrContinue (this=0x83d0e58, state=0, incremental=false) at xml/qxml.cpp:3017 #32 0xb6964427 in TQXmlSimpleReader::parse (this=0x83d0e58, input=0x8314ab8, incremental=false) at xml/qxml.cpp:2959 #33 0xb6952be5 in TQXmlSimpleReader::parse (this=0x83d0e58, input=0x8314ab8) at xml/qxml.cpp:2914 #34 0xb540085d in KSVG::KSVGReader::parse (this=0x8314938, source=0x8314ab8) at /dev/shm/tdegraphics/ksvg/core/KSVGReader.cc:476 #35 0xb52992fb in KSVG::SVGDocumentImpl::slotSVGContent (this=0x80e2a38, dev=0x83141b0) at /dev/shm/tdegraphics/ksvg/impl/SVGDocumentImpl.cc:267 #36 0xb529c1e2 in KSVG::SVGDocumentImpl::tqt_invoke (this=0x80e2a38, _id=4, _o=0xbff28bd8) at /dev/shm/tdegraphics.build/ksvg/impl/SVGDocumentImpl.moc:175 #37 0xb672bc45 in TQObject::activate_signal (this=0x83b8648, clist=0x83b8aa0, o=0xbff28bd8) at kernel/qobject.cpp:2383 #38 0xb53f418c in KSVG::KSVGLoader::gotResult (this=0x83b8648, t0=0x83141b0) at /dev/shm/tdegraphics.build/ksvg/core/KSVGLoader.moc:111 #39 0xb53f5c50 in KSVG::KSVGLoader::slotResult (this=0x83b8648, job=0x83b8c80) at /dev/shm/tdegraphics/ksvg/core/KSVGLoader.cpp:138 #40 0xb53f5eaa in KSVG::KSVGLoader::tqt_invoke (this=0x83b8648, _id=3, _o=0xbff28db8) at /dev/shm/tdegraphics.build/ksvg/core/KSVGLoader.moc:131 #41 0xb672bc45 in TQObject::activate_signal (this=0x83b8c80, clist=0x83b90e0, o=0xbff28db8) at kernel/qobject.cpp:2383 #42 0xb749997c in KIO::Job::result (this=0x83b8c80, t0=0x83b8c80) at /dev/shm/tdelibs.build/kio/kio/jobclasses.moc:160 #43 0xb749bb3d in KIO::Job::emitResult (this=0x83b8c80) at /dev/shm/tdelibs/kio/kio/job.cpp:235 #44 0xb749bd0c in KIO::SimpleJob::slotFinished (this=0x83b8c80) at /dev/shm/tdelibs/kio/kio/job.cpp:601 #45 0xb749ff74 in KIO::TransferJob::slotFinished (this=0x83b8c80) at /dev/shm/tdelibs/kio/kio/job.cpp:971 #46 0xb74a4b78 in KIO::TransferJob::tqt_invoke (this=0x83b8c80, _id=17, _o=0xbff290f8) at /dev/shm/tdelibs.build/kio/kio/jobclasses.moc:1069 #47 0xb672bc45 in TQObject::activate_signal (this=0x8314288, clist=0x8313d00, o=0xbff290f8) at kernel/qobject.cpp:2383 #48 0xb672dd26 in TQObject::activate_signal (this=0x0, signal=6) at kernel/qobject.cpp:2352 #49 0xb748070c in KIO::SlaveInterface::finished (this=0x8314288) at /dev/shm/tdelibs.build/kio/kio/slaveinterface.moc:224 #50 0xb7484d51 in KIO::SlaveInterface::dispatch (this=0x8314288, _cmd=104, rawdata=...) at /dev/shm/tdelibs/kio/kio/slaveinterface.cpp:243 #51 0xb7480d09 in KIO::SlaveInterface::dispatch (this=0x8314288) at /dev/shm/tdelibs/kio/kio/slaveinterface.cpp:173 #52 0xb747f156 in KIO::Slave::gotInput (this=0x8314288) at /dev/shm/tdelibs/kio/kio/slave.cpp:300 #53 0xb74802f0 in KIO::Slave::tqt_invoke (this=0x8314288, _id=4, _o=0xbff29470) at /dev/shm/tdelibs.build/kio/kio/slave.moc:111 #54 0xb672bc45 in TQObject::activate_signal (this=0x8313ed8, clist=0x83a87c8, o=0xbff29470) at kernel/qobject.cpp:2383 #55 0xb672e21f in TQObject::activate_signal (this=0x8313ed8, signal=2, param=13) at kernel/qobject.cpp:2476 #56 0xb6a5c9ca in TQSocketNotifier::activated (this=0x8313ed8, t0=13) at .moc/release-shared-mt/moc_ntqsocketnotifier.cpp:83 #57 0xb674992d in TQSocketNotifier::event (this=0x8313ed8, e=0xbff297bc) at kernel/qsocketnotifier.cpp:261 #58 0xb66c845d in TQApplication::internalNotify (this=0xbff29a18, receiver=0x8313ed8, e=0xbff297bc) at kernel/qapplication.cpp:2638 #59 0xb66c937c in TQApplication::notify (this=0xbff29a18, receiver=0x8313ed8, e=0xbff297bc) at kernel/qapplication.cpp:2526 #60 0xb6c835ad in KApplication::notify (this=0xbff29a18, receiver=0x8313ed8, event=0xbff297bc) at /dev/shm/tdelibs/tdecore/kapplication.cpp:583 #61 0xb66bd1c5 in TQApplication::sendEvent (this=0x80d0b20) at kernel/ntqapplication.h:523 #62 TQEventLoop::activateSocketNotifiers (this=0x80d0b20) at kernel/qeventloop_unix.cpp:581 #63 0xb6675cb6 in TQEventLoop::processEvents (this=0x80d0b20, flags=4) at kernel/qeventloop_x11.cpp:386 #64 0xb66e0b2b in TQEventLoop::enterLoop (this=0x80d0b20) at kernel/qeventloop.cpp:201 #65 0xb66e09c4 in TQEventLoop::exec (this=0x80d0b20) at kernel/qeventloop.cpp:148 #66 0xb66c8ae1 in TQApplication::exec (this=0xbff29a18) at kernel/qapplication.cpp:2761 #67 0xb5ecd6c3 in kdemain (argc=6, argv=0x80a9060) at main.cpp:160 #68 0xb78464b4 in tdeinitmain (argc=6, argv=0x80a9060) at gwenview_dummy.cpp:3 #69 0x0804e461 in launch (argc=<value optimized out>, _name=<value optimized out>, args=<value optimized out>, cwd=0x0, envc=1, envs=0x80a8c7b "DISPLAY=:0.0", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x80a8c8c "testbox;1340044106;449835;14554_TIME18899307") at /dev/shm/tdelibs/kinit/kinit.cpp:673 #70 0x0804f191 in handle_launcher_request (sock=9) at /dev/shm/tdelibs/kinit/kinit.cpp:1240 #71 0x0804f89e in handle_requests (waitForPid=<value optimized out>) at /dev/shm/tdelibs/kinit/kinit.cpp:1443 #72 0x08050db0 in main (argc=5, argv=0xbff2a2c4, envp=0xbff2a2dc) at /dev/shm/tdelibs/kinit/kinit.cpp:1909