Bug 322558

Summary: Crash when i click on Red Eyes tool
Product: [Applications] digikam Reporter: charpentier Franck <charpentier.franck>
Component: Faces-RedEyesAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, myriam, nevion
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.7.0
Sentry Crash Report:

Description charpentier Franck 2013-07-19 08:40:09 UTC
Application: gwenview (4.10.4)
KDE Platform Version: 4.10.5
Qt Version: 4.8.4
Operating System: Linux 3.8.0-27-generic x86_64
Distribution: Ubuntu 13.04

-- Information about the crash:
- What I was doing when the application crashed:
view photo
I click on Modules externes and then gwenview crash

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7eff8c3827c0 (LWP 31334))]

Thread 3 (Thread 0x7eff775df700 (LWP 31335)):
#0  begin (this=0x7eff70002860) at ../../include/QtCore/../../src/corelib/tools/qlist.h:101
#1  constBegin (this=0x7eff70002860) at ../../include/QtCore/../../src/corelib/tools/qlist.h:269
#2  QTimerInfoList::timerWait (this=0x7eff70002860, tm=...) at kernel/qeventdispatcher_unix.cpp:466
#3  0x00007eff8b31379c in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7eff775debc4) at kernel/qeventdispatcher_glib.cpp:136
#4  0x00007eff8b313845 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#5  0x00007eff8520a900 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007eff8520b0fe in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007eff8520b304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007eff8b314036 in QEventDispatcherGlib::processEvents (this=0x7eff700008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#9  0x00007eff8b2e438f in QEventLoop::processEvents (this=this@entry=0x7eff775ded90, flags=...) at kernel/qeventloop.cpp:149
#10 0x00007eff8b2e4618 in QEventLoop::exec (this=this@entry=0x7eff775ded90, flags=...) at kernel/qeventloop.cpp:204
#11 0x00007eff8b1e6410 in QThread::exec (this=this@entry=0x2981060) at thread/qthread.cpp:542
#12 0x00007eff8b2c5edf in QInotifyFileSystemWatcherEngine::run (this=0x2981060) at io/qfilesystemwatcher_inotify.cpp:256
#13 0x00007eff8b1e8bec in QThreadPrivate::start (arg=0x2981060) at thread/qthread_unix.cpp:338
#14 0x00007eff856c9f8e in start_thread (arg=0x7eff775df700) at pthread_create.c:311
#15 0x00007eff88cd3e1d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7eff765b9700 (LWP 31336)):
#0  0x00007eff88cc73cd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007eff8520b1dc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007eff8520b304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007eff8b314036 in QEventDispatcherGlib::processEvents (this=0x7eff680008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007eff8b2e438f in QEventLoop::processEvents (this=this@entry=0x7eff765b8d90, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007eff8b2e4618 in QEventLoop::exec (this=this@entry=0x7eff765b8d90, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007eff8b1e6410 in QThread::exec (this=this@entry=0x29d3110) at thread/qthread.cpp:542
#7  0x00007eff8b2c5edf in QInotifyFileSystemWatcherEngine::run (this=0x29d3110) at io/qfilesystemwatcher_inotify.cpp:256
#8  0x00007eff8b1e8bec in QThreadPrivate::start (arg=0x29d3110) at thread/qthread_unix.cpp:338
#9  0x00007eff856c9f8e in start_thread (arg=0x7eff765b9700) at pthread_create.c:311
#10 0x00007eff88cd3e1d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7eff8c3827c0 (LWP 31334)):
[KCrash Handler]
#6  __strcmp_sse42 () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:164
#7  0x00007eff6584a970 in QMetaType::registerNormalizedType(QByteArray const&, void (*)(void*), void* (*)(void const*), void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007eff6532e155 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#9  0x00007eff65101193 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#10 0x00007eff8c2e8876 in call_init (l=l@entry=0x3105000, argc=argc@entry=5, argv=argv@entry=0x7fff2f039cb8, env=env@entry=0x27a2870) at dl-init.c:84
#11 0x00007eff8c2e8930 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=0x3105000) at dl-init.c:55
#12 _dl_init (main_map=main_map@entry=0x3112c90, argc=5, argv=0x7fff2f039cb8, env=0x27a2870) at dl-init.c:133
#13 0x00007eff8c2ecfdf in dl_open_worker (a=a@entry=0x7fff2f0375f8) at dl-open.c:566
#14 0x00007eff8c2e8706 in _dl_catch_error (objname=objname@entry=0x7fff2f0375e8, errstring=errstring@entry=0x7fff2f0375f0, mallocedp=mallocedp@entry=0x7fff2f0375e0, operate=operate@entry=0x7eff8c2ecc00 <dl_open_worker>, args=args@entry=0x7fff2f0375f8) at dl-error.c:177
#15 0x00007eff8c2ec809 in _dl_open (file=0x31166b8 "/usr/lib/kde4/kipiplugin_removeredeyes.so", mode=-2147483647, caller_dlopen=<optimized out>, nsid=-2, argc=5, argv=0x7fff2f039cb8, env=0x27a2870) at dl-open.c:656
#16 0x00007eff854bf026 in dlopen_doit (a=a@entry=0x7fff2f037800) at dlopen.c:66
#17 0x00007eff8c2e8706 in _dl_catch_error (objname=0x2650f30, errstring=0x2650f38, mallocedp=0x2650f28, operate=0x7eff854befc0 <dlopen_doit>, args=0x7fff2f037800) at dl-error.c:177
#18 0x00007eff854bf63c in _dlerror_run (operate=operate@entry=0x7eff854befc0 <dlopen_doit>, args=args@entry=0x7fff2f037800) at dlerror.c:163
#19 0x00007eff854bf0c1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#20 0x00007eff8b2d7436 in QLibraryPrivate::load_sys (this=this@entry=0x3112bf0) at plugin/qlibrary_unix.cpp:226
#21 0x00007eff8b2d210c in load (this=0x3112bf0) at plugin/qlibrary.cpp:469
#22 QLibraryPrivate::load (this=0x3112bf0) at plugin/qlibrary.cpp:461
#23 0x00007eff8b2d438b in QLibraryPrivate::loadPlugin (this=0x3112bf0) at plugin/qlibrary.cpp:519
#24 0x00007eff8b2c9f51 in QPluginLoader::load (this=this@entry=0x7fff2f038e20) at plugin/qpluginloader.cpp:227
#25 0x00007eff894aacb8 in KPluginLoader::load (this=this@entry=0x7fff2f038e20) at ../../kdecore/util/kpluginloader.cpp:239
#26 0x00007eff894ab857 in KPluginLoader::factory (this=this@entry=0x7fff2f038e20) at ../../kdecore/util/kpluginloader.cpp:204
#27 0x00007eff8ad391e4 in createInstance<KIPI::Plugin> (error=0x7fff2f038d40, args=..., parent=0x2e47630, parentWidget=0x0, this=0x2a40260) at /usr/include/kservice.h:557
#28 createInstance<KIPI::Plugin> (error=0x7fff2f038d40, args=..., parent=0x2e47630, this=0x2a40260) at /usr/include/kservice.h:536
#29 KIPI::PluginLoader::Info::plugin (this=this@entry=0x2ec1720) at ../../libkipi/pluginloader.cpp:165
#30 0x0000000000462458 in Gwenview::KIPIInterface::loadOnePlugin (this=0x2e47630) at ../../app/kipiinterface.cpp:310
#31 0x00007eff8b2ff5be in QObject::event (this=0x2e47630, e=<optimized out>) at kernel/qobject.cpp:1194
#32 0x00007eff899308ec in QApplicationPrivate::notify_helper (this=this@entry=0x266aa10, receiver=receiver@entry=0x2e47630, e=e@entry=0x3114d90) at kernel/qapplication.cpp:4567
#33 0x00007eff8993325b in QApplication::notify (this=this@entry=0x7fff2f039b50, receiver=receiver@entry=0x2e47630, e=e@entry=0x3114d90) at kernel/qapplication.cpp:4428
#34 0x00007eff8a63c1a6 in KApplication::notify (this=0x7fff2f039b50, receiver=0x2e47630, event=0x3114d90) at ../../kdeui/kernel/kapplication.cpp:311
#35 0x00007eff8b2e563e in QCoreApplication::notifyInternal (this=0x7fff2f039b50, receiver=receiver@entry=0x2e47630, event=event@entry=0x3114d90) at kernel/qcoreapplication.cpp:946
#36 0x00007eff8b2e9171 in sendEvent (event=0x3114d90, receiver=0x2e47630) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#37 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x262b150) at kernel/qcoreapplication.cpp:1570
#38 0x00007eff8b2e94a3 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1463
#39 0x00007eff8b313e83 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#40 postEventSourceDispatch (s=0x266ae00) at kernel/qeventdispatcher_glib.cpp:279
#41 0x00007eff8520af05 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007eff8520b248 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007eff8520b304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007eff8b314016 in QEventDispatcherGlib::processEvents (this=0x262c610, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#45 0x00007eff899d61ae in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#46 0x00007eff8b2e438f in QEventLoop::processEvents (this=this@entry=0x7fff2f039a30, flags=...) at kernel/qeventloop.cpp:149
#47 0x00007eff8b2e4618 in QEventLoop::exec (this=this@entry=0x7fff2f039a30, flags=...) at kernel/qeventloop.cpp:204
#48 0x00007eff8b2e9cf6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#49 0x00007eff8992effc in QApplication::exec () at kernel/qapplication.cpp:3828
#50 0x00000000004277d2 in main (argc=5, argv=0x7fff2f039cb8) at ../../app/main.cpp:143

Reported using DrKonqi
Comment 1 Jekyll Wu 2013-07-19 12:48:35 UTC
> Qt Version: 4.8.4
> #9  0x00007eff65101193 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
> #15 0x00007eff8c2ec809 in _dl_open (file=0x31166b8 "/usr/lib/kde4/kipiplugin_removeredeyes.so", mode=-2147483647, caller_dlopen=<optimized out>, nsid=-2, argc=5, argv=0x7fff2f039cb8, env=0x27a2870) at dl-open.c:656

That is strange. Why is Qt5 involved in a Qt4 application ?  Did you compile something manually ?
Comment 2 charpentier Franck 2013-07-19 14:30:26 UTC
thank you, this is my probleme. I uninstall Qt5 and i have'nt the error
Comment 3 Jason 2014-07-15 05:58:01 UTC
I realize most development is focusing on qt5 integration and bugfixing right now but I just wanted to point out that this is still a valid bug.  It hits me as a developer because I program to qt5 but on opensuse and any other distribution, they are still using qt4 for kde.  Every other application gets along fine with this environment consisting of 2 qts except gwenview, whom crashes with it's KIPI plugin loading.
Comment 4 Jason 2014-07-17 04:40:45 UTC
looks like the problem here in my case was qt5, opencv that I package against qt5 , and removeredeyes here unnecessarily linking to highgui.  If this plugin is changed so that it does not link to highgui I suspect the dll hell here will go away.  I triaged the current source and it's a bit of a mess in there.  I recommend to first remove the highgui.h header includes but the cmake stuff is crufty supporting I believe 3 different FindOpenCV scripts (which should be cut to the official one only) and using some ancient macros.  The next step would be changing the REQUIRED COMPONENTS to just core, imgproc, and the haar classifier stuff.  Maybe objdetect too, not sure.
Comment 5 caulier.gilles 2017-07-08 11:05:11 UTC
This problem is fixed since digiKam 5.x integrate a dedicated tool to process
red eyes instead kipi plugin.