Summary: | Crash when trying to open Plugins menu - Signal 6 (SIGABRT) | ||
---|---|---|---|
Product: | [Applications] gwenview | Reporter: | Alan Prescott <alanjprescott> |
Component: | general | Assignee: | Gwenview Bugs <gwenview-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | 1.4.2 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Alan Prescott
2008-07-25 13:15:34 UTC
> #12 0xb713908a in __cxa_throw () from /usr/lib/libstdc++.so.6
> #13 0xb6419700 in Exiv2::ExifTags::registerMakerTagInfo ()
> from /usr/lib/libexiv2.so.0
> #14 0xb6411ad1 in Exiv2::SigmaMakerNote::RegisterMn::RegisterMn ()
> from /usr/lib/libexiv2.so.0
Sounds like an Exiv2 issue. What version of libexiv2 do you use? Can you
try upgrading it?
Can you attach the faulty image to the bug report?
libexiv2 info <snip> # rpm -qi libexiv2 Name : libexiv2 Relocations: (not relocatable) Version : 0.15 Vendor: openSUSE Build Service Release : 1.1 Build Date: Fri 31 Aug 2007 10:43:51 BST Install Date: Tue 08 Jan 2008 13:21:27 GMT Build Host: build19 Group : Development/Libraries/C and C++ Source RPM: libexiv2-0.15-1.1.src.rpm Size : 1662193 License: GNU General Public License (GPL) Signature : DSA/SHA1, Fri 31 Aug 2007 10:44:08 BST, Key ID 3b3011b76b9d6523 URL : http://www.exiv2.org/ Summary : Library and tools to access image metadata Description : Exiv2 is a C++ library and a command line utility to access image metadata. Authors: -------- Andreas Huggel <ahuggel@gmx.net> Distribution: KDE:Backports / openSUSE_10.2 </snip> Looking into YaST I seem to also have libexiv2-2 0.16-17.1 libexiv2-4 0.17.1-2.1 (required for digikam, kipi, kphotoalbum) I've removed libexiv2-2 0.16-17.1 as nothing was referencing it (just in case) but still gwenview crashes. Not sure what you mean by 'faulty image' - if I just open gwenview and click on the plugins menu I get the crash - it's no particular jpeg/png etc. PS - thanks for a nice viewer - I'd only recently found that I could run my scanner from gwenview:plugins. Previously I'd used kooka since I'd been using that before even though I had to wrap a script round it to get the permissions fixed. Now that I'm running gwenview directly (rather than just using it as a viewer within konqueror) I've found all the excellent features I'd not got around to exploring before. I thought it was in an image because it crashes on Exiv2, but based on what you say, I guess it crashes in a plugin initialization. It would help to narrow which plugin is faulty. Can you have a look at the console output to see if there is some kipi debug output? If there's nothing else, maybe you can try "hiding" the plugins? - Go to the folder where plugins are installed (/usr/lib/kde3 on my Ubuntu) - List plugins using exiv2 with this command: for x in kipiplugin_*so ; do if ldd $x | grep -q exiv2 && echo $x; done - Move them away. For example create a "disabled" folder in /usr/lib/kde3 and move the listed plugins in it. Now start Gwenview and opens the plugins menu. It should not crash. To find out which plugin(s) is faulty, move the .so back until it crash again. From CLI <console> alan@nikyo:~> gwenview terminate called after throwing an instance of 'Exiv2::Error' what(): MakerTagInfo registry full KCrash: Application 'gwenview' crashing... </console> I'm guessing that by for x in kipiplugin_*so ; do if ldd $x | grep -q exiv2 && echo $x; done you want a list of the plugins referencing exiv2 - so I ran <console> nikyo:/opt/kde3/lib/kde3 # for x in kipiplugin_*so ; do [[ `ldd $x | grep -c exiv2` -gt 0 ]] && echo $x ; done kipiplugin_batchprocessimages.so kipiplugin_galleryexport.so kipiplugin_gpssync.so kipiplugin_jpeglossless.so kipiplugin_metadataedit.so kipiplugin_printwizard.so kipiplugin_rawconverter.so kipiplugin_sendimages.so kipiplugin_simpleviewer.so kipiplugin_timeadjust.so </console> I moved these to /disabled as suggested and run from CLI - without a crash <console> alan@nikyo:~> gwenview ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) ASSERT: "plugin" in /usr/src/packages/BUILD/gwenview-1.4.2/src/app/mainwindow.cpp (1303) </console> I restored kipiplugin_batchprocessimages.so <console> alan@nikyo:~> gwenview ASSERT: "!d->mDecoderTimer.isActive()" in /usr/src/packages/BUILD/gwenview-1.4.2/src/gvcore/imageloader.cpp (475) terminate called after throwing an instance of 'Exiv2::Error' what(): MakerTagInfo registry full KCrash: Application 'gwenview' crashing... </console> I returned kipiplugin_batchprocessimages.so to /disabled and restored kipiplugin_galleryexport.so <console> alan@nikyo:~> gwenview ASSERT: "!d->mDecoderTimer.isActive()" in /usr/src/packages/BUILD/gwenview-1.4.2/src/gvcore/imageloader.cpp (475) terminate called after throwing an instance of 'Exiv2::Error' what(): MakerTagInfo registry full KCrash: Application 'gwenview' crashing... </console> One more try just for luck - this time with a restored kipiplugin_simpleviewer.so <console> alan@nikyo:~> gwenview ASSERT: "!d->mDecoderTimer.isActive()" in /usr/src/packages/BUILD/gwenview-1.4.2/src/gvcore/imageloader.cpp (475) terminate called after throwing an instance of 'Exiv2::Error' what(): MakerTagInfo registry full KCrash: Application 'gwenview' crashing... </console> As you can see it's the same error each time so I stopped at that point. Hope this helps, Alan Alan Prescott wrote: > I'm guessing that by > for x in kipiplugin_*so ; do if ldd $x | grep -q exiv2 && echo $x; done > you want a list of the plugins referencing exiv2 - so I ran Hum... yes, zsh did not choke on the extra "if" but I noticed bash did. Removing the if would have worked better :) > <console> > alan@nikyo:~> gwenview > ASSERT: "!d->mDecoderTimer.isActive()" in > /usr/src/packages/BUILD/gwenview-1.4.2/src/gvcore/imageloader.cpp (475) > terminate called after throwing an instance of 'Exiv2::Error' > what(): MakerTagInfo registry full > KCrash: Application 'gwenview' crashing... > </console> I just remembered Exiv2 changed the way it raised exception in recent versions. Can you try to downgrade to the oldest available version of libexiv2 you have on your system? Reverting libexiv2 back to 0.11-8 (from 0.12-101) does seem to fix it. I suppose I could just drop out the offending kipi plugins as the main one I was after was acquireimages. Does this count as fixed? - I'll let you decide Cheers, Alan Sorry for the delay, was a bit drowned by bugzilla flood :) Can you try editing jpegcontent.cpp and replacing the line which says (should be line 264): } catch (Exiv2::Error&) { with: } catch (...) { I believe it should fix the bug. Ok - downloaded sources, made mod as suggested and compiled. Looks to have fixed the problem - I'll log it as fixed (at least it is for me). Thanks, Alan Applied patch in svn. |