Summary: | crash tagging a picture | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Jaime Torres <jtamate> |
Component: | Tags-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles |
Priority: | NOR | ||
Version: | 2.6.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/digikam/cb1e7afd40f37122f5665f4073b89a2a797209d5 | Version Fixed In: | 2.7.0 |
Sentry Crash Report: |
Description
Jaime Torres
2012-06-09 08:39:15 UTC
It crash indeep in Qt. Sound like a binary compatibility issue with packages. Gilles Caulier We invoke a meta method, and an internal assert fails checking that the MetaObject used to invoke the method and the object passed as parameter, on which to invoke the method, are compatible. Now in the code, the MetaObject and Method are quite clearly from the correct object, and it works for all of us. Dont know, perhaps really some binary compatibility mix (though I probably never ran this with a Qt with asserts enabled) runinng digikam under valgrind, and a complete compile of all KDE SC, I only see these messages: QObject::connect: Connecting from QTabBar::tabCloseRequested(int) to COMPAT slot (KTabBar::closeRequest(int)) QSocketNotifier: Invalid socket 15 and type 'Read', disabling... Invalid read of size 2 at 0xCE16A1A: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:83) by 0x13CA61FA: g_main_context_check (in /usr/lib64/libglib-2.0.so.0.3200.3) by 0x13CA6681: ??? (in /usr/lib64/libglib-2.0.so.0.3200.3) by 0x13CA6803: g_main_context_iteration (in /usr/lib64/libglib-2.0.so.0.3200.3) by 0xCE17263: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:424) by 0xCDE424E: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) by 0xCDE4507: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:204) by 0xCCDC18C: QThread::exec() (qthread.cpp:501) by 0xCDC34D2: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) by 0xCCDEE77: QThreadPrivate::start(void*) (qthread_unix.cpp:307) by 0xD160E0D: start_thread (pthread_create.c:305) by 0xE20528C: clone (clone.S:115) Address 0x25ee1974 is 4 bytes inside a block of size 16 free'd at 0x4C299DC: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) by 0xCE16A12: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) by 0x13CA61FA: g_main_context_check (in /usr/lib64/libglib-2.0.so.0.3200.3) by 0x13CA6681: ??? (in /usr/lib64/libglib-2.0.so.0.3200.3) by 0x13CA6803: g_main_context_iteration (in /usr/lib64/libglib-2.0.so.0.3200.3) by 0xCE17263: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:424) by 0xCDE424E: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) by 0xCDE4507: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:204) by 0xCCDC18C: QThread::exec() (qthread.cpp:501) by 0xCDC34D2: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) by 0xCCDEE77: QThreadPrivate::start(void*) (qthread_unix.cpp:307) by 0xD160E0D: start_thread (pthread_create.c:305) But As I am the only one reproducing it (every time), I'll try to fix it here. Just to be sure this is not the problem (I get lost with the introspection methods): Are the methods called in this way registered with the meta-object system? Qt Documentation.. A method will only be registered with the meta-object system if it is a slot, a signal, or declared with the Q_INVOKABLE macro. Constructors can also be registered with Q_INVOKABLE. Git commit cb1e7afd40f37122f5665f4073b89a2a797209d5 by Marcel Wiesweg. Committed on 10/06/2012 at 18:59. Pushed by mwiesweg into branch 'master'. - use the moc's real meta object not to confuse Qt and trigger internal ASSERTs - syntactically prevent adding of any WorkerObject subclass, it must be the template's type M +1 -1 libs/threads/parallelworkers.cpp M +4 -1 libs/threads/parallelworkers.h http://commits.kde.org/digikam/cb1e7afd40f37122f5665f4073b89a2a797209d5 Should be fixed with this commit. I could reproduce that the call checked by the internal assert fails. |