Bug 303218 - digikam import crashes when you select video files
Summary: digikam import crashes when you select video files
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Import-Settings (show other bugs)
Version: 4.0.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-09 00:26 UTC by Jim Shipman
Modified: 2018-03-14 04:42 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jim Shipman 2012-07-09 00:26:10 UTC
Application: digikam (2.6.0)
KDE Platform Version: 4.8.4 (4.8.4)
Qt Version: 4.8.2
Operating System: Linux 3.4.4-5.fc17.x86_64 x86_64
Distribution: "Fedora release 17 (Beefy Miracle)"

-- Information about the crash:
- What I was doing when the application crashed:
I had just imported jpeg/tiff files, then clicked on "video files" to look at my movies because I don't get thumbnails of movies and the import tool does not remember which movies have already been uploaded.  I can't easily tell which movies have already been uploaded because there is no information displayed about mp4 metadata and no thumbnail.

The crash can be reproduced some of the time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f364d504a80 (LWP 14146))]

Thread 6 (Thread 0x7f363fed1700 (LWP 14148)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166
#1  0x000000339787baeb in wait (time=18446744073709551615, this=0x2341f60) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x2341e58, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00000000005c8ad8 in Digikam::ScanController::run (this=0x2341bf0) at /usr/src/debug/digikam-2.6.0/core/digikam/database/scancontroller.cpp:698
#4  0x000000339787b5eb in QThreadPrivate::start (arg=0x2341bf0) at thread/qthread_unix.cpp:307
#5  0x000000338d007d14 in start_thread (arg=0x7f363fed1700) at pthread_create.c:309
#6  0x000000338c4f199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 5 (Thread 0x7f363f6d0700 (LWP 14149)):
#0  0x000000338c4e8eef in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x000000338e8479b4 in g_main_context_poll (n_fds=1, fds=0x7f3630002910, timeout=-1, context=0x7f36300009a0, priority=<optimized out>) at gmain.c:3440
#2  g_main_context_iterate (context=context@entry=0x7f36300009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3141
#3  0x000000338e847ad4 in g_main_context_iteration (context=0x7f36300009a0, may_block=1) at gmain.c:3207
#4  0x00000033979a4506 in QEventDispatcherGlib::processEvents (this=0x7f36300008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#5  0x000000339797513f in QEventLoop::processEvents (this=this@entry=0x7f363f6cfaf0, flags=...) at kernel/qeventloop.cpp:149
#6  0x00000033979753c8 in QEventLoop::exec (this=0x7f363f6cfaf0, flags=...) at kernel/qeventloop.cpp:204
#7  0x0000003397878650 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#8  0x0000003397955b4f in QInotifyFileSystemWatcherEngine::run (this=0x23440c0) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x000000339787b5eb in QThreadPrivate::start (arg=0x23440c0) at thread/qthread_unix.cpp:307
#10 0x000000338d007d14 in start_thread (arg=0x7f363f6d0700) at pthread_create.c:309
#11 0x000000338c4f199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 4 (Thread 0x7f363eecf700 (LWP 14158)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166
#1  0x000000339787baeb in wait (time=18446744073709551615, this=0x2598850) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x241f528, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x0000003d103367d9 in Digikam::ParkingThread::run (this=0x241f510) at /usr/src/debug/digikam-2.6.0/core/libs/threads/threadmanager.cpp:119
#4  0x000000339787b5eb in QThreadPrivate::start (arg=0x241f510) at thread/qthread_unix.cpp:307
#5  0x000000338d007d14 in start_thread (arg=0x7f363eecf700) at pthread_create.c:309
#6  0x000000338c4f199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7f361fffd700 (LWP 14389)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166
#1  0x000000339787baeb in wait (time=18446744073709551615, this=0x6925ea0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x6964978, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x000000000077a5fa in Digikam::CameraController::run (this=0x6b23920) at /usr/src/debug/digikam-2.6.0/core/utilities/cameragui/controller/cameracontroller.cpp:386
#4  0x000000339787b5eb in QThreadPrivate::start (arg=0x6b23920) at thread/qthread_unix.cpp:307
#5  0x000000338d007d14 in start_thread (arg=0x7f361fffd700) at pthread_create.c:309
#6  0x000000338c4f199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f363dfe0700 (LWP 14392)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166
#1  0x000000339787baeb in wait (time=18446744073709551615, this=0x6c1b920) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x6c1a588, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x0000000000781b34 in Digikam::CameraHistoryUpdater::run (this=0x6c1a9c0) at /usr/src/debug/digikam-2.6.0/core/utilities/cameragui/controller/camerahistoryupdater.cpp:118
#4  0x000000339787b5eb in QThreadPrivate::start (arg=0x6c1a9c0) at thread/qthread_unix.cpp:307
#5  0x000000338d007d14 in start_thread (arg=0x7f363dfe0700) at pthread_create.c:309
#6  0x000000338c4f199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f364d504a80 (LWP 14146)):
[KCrash Handler]
#6  d_func (this=0x0) at /usr/src/debug/kdelibs-4.8.4/kdecore/services/kmimetype.h:48
#7  KMimeType::patterns (this=0x0) at /usr/src/debug/kdelibs-4.8.4/kdecore/services/kmimetype.cpp:586
#8  0x0000000000757db6 in Digikam::FilterComboBox::mimeWildcards (this=this@entry=0x6b645a0, mime=...) at /usr/src/debug/digikam-2.6.0/core/utilities/cameragui/widgets/filtercombo.cpp:246
#9  0x000000000075832b in Digikam::FilterComboBox::matchesCurrentFilter (this=0x6b645a0, item=...) at /usr/src/debug/digikam-2.6.0/core/utilities/cameragui/widgets/filtercombo.cpp:296
#10 0x0000000000760fa9 in Digikam::CameraUI::slotRefreshIconView (this=0x2e87b80, map=...) at /usr/src/debug/digikam-2.6.0/core/utilities/cameragui/main/cameraui.cpp:1150
#11 0x000000339798acee in QObject::event (this=0x2e87b80, e=<optimized out>) at kernel/qobject.cpp:1195
#12 0x0000003a996193da in QWidget::event (this=0x2e87b80, event=0x7f3618010ac0) at kernel/qwidget.cpp:8830
#13 0x0000003a999dd02b in QMainWindow::event (this=0x2e87b80, event=0x7f3618010ac0) at widgets/qmainwindow.cpp:1478
#14 0x0000003a9cb37e58 in KXmlGuiWindow::event (this=0x2e87b80, ev=0x7f3618010ac0) at /usr/src/debug/kdelibs-4.8.4/kdeui/xmlgui/kxmlguiwindow.cpp:126
#15 0x0000003a995ca37c in QApplicationPrivate::notify_helper (this=this@entry=0x20eae90, receiver=receiver@entry=0x2e87b80, e=e@entry=0x7f3618010ac0) at kernel/qapplication.cpp:4551
#16 0x0000003a995ce7fa in QApplication::notify (this=0x7fffbf4cb030, receiver=0x2e87b80, e=0x7f3618010ac0) at kernel/qapplication.cpp:4412
#17 0x0000003a9ca46756 in KApplication::notify (this=0x7fffbf4cb030, receiver=0x2e87b80, event=0x7f3618010ac0) at /usr/src/debug/kdelibs-4.8.4/kdeui/kernel/kapplication.cpp:311
#18 0x00000033979763ee in QCoreApplication::notifyInternal (this=0x7fffbf4cb030, receiver=receiver@entry=0x2e87b80, event=event@entry=0x7f3618010ac0) at kernel/qcoreapplication.cpp:915
#19 0x0000003397979ea1 in sendEvent (event=0x7f3618010ac0, receiver=0x2e87b80) at kernel/qcoreapplication.h:231
#20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x2083c80) at kernel/qcoreapplication.cpp:1539
#21 0x00000033979a4353 in sendPostedEvents () at kernel/qcoreapplication.h:236
#22 postEventSourceDispatch (s=s@entry=0x20e76a0) at kernel/qeventdispatcher_glib.cpp:279
#23 0x000000338e8476e5 in g_main_dispatch (context=0x20ec020) at gmain.c:2539
#24 g_main_context_dispatch (context=context@entry=0x20ec020) at gmain.c:3075
#25 0x000000338e847a18 in g_main_context_iterate (context=context@entry=0x20ec020, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3146
#26 0x000000338e847ad4 in g_main_context_iteration (context=0x20ec020, may_block=1) at gmain.c:3207
#27 0x00000033979a44e6 in QEventDispatcherGlib::processEvents (this=0x2085560, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#28 0x0000003a9966a2ee in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#29 0x000000339797513f in QEventLoop::processEvents (this=this@entry=0x7fffbf4caa40, flags=...) at kernel/qeventloop.cpp:149
#30 0x00000033979753c8 in QEventLoop::exec (this=0x7fffbf4caa40, flags=...) at kernel/qeventloop.cpp:204
#31 0x000000339797a1b8 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#32 0x000000000048f41e in main (argc=5, argv=0x7fffbf4cb268) at /usr/src/debug/digikam-2.6.0/core/digikam/main/main.cpp:232

Possible duplicates by query: bug 289006.

Reported using DrKonqi
Comment 1 caulier.gilles 2013-10-31 07:52:40 UTC
digiKam 3.5.0 is out.

Can you give a fresh feedback about your report ? Crash still reproducible ?

Thanks in advance

Gilles Caulier
Comment 2 Jim Shipman 2013-11-02 20:50:10 UTC
This crash happens on multiple systems, including a fresh fedora 19 install.  The following is the output of the message log during the crash.  This has been going on for a long time and is reproducible on both my systems (including a fresh install).

Nov  3 13:41:56 laurie gnome-session[2558]: digikam: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Nov  2 13:41:56 laurie gnome-session[2558]: QSocketNotifier: Invalid socket 19 and type 'Read', disabling...
Nov  2 13:41:56 laurie gnome-session[2558]: digikam: Fatal IO error 9 (Bad file descriptor) on X server :0.
Nov  2 13:41:56 laurie gnome-session[2558]: KCrash: Application 'digikam' crashing...
Nov  2 13:41:56 laurie gnome-session[2558]: KCrash: Attempting to start /usr/libexec/kde4/drkonqi from kdeinit
Nov  2 13:41:56 laurie gnome-session[2558]: Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.
Nov  2 13:41:56 laurie gnome-session[2558]: sock_file=/home/shipman/.kde/socket-laurie.family.net/kdeinit4__0
Nov  2 13:41:56 laurie gnome-session[2558]: drkonqi(2334): The specified process does not exist.
Comment 3 Teemu Rytilahti 2014-01-09 18:03:47 UTC
Actually the crash you're talking about is a different one. The given codepath does not exist at all in recent version of digiKam because the filtering is commented out in import ui and that FilterCombobox is not used elsewhere at all.

That doesn't mean that there's no crash inside that code, but it'll need to be debugged when the filtering is restored.
Comment 4 Teemu Rytilahti 2014-01-14 11:25:08 UTC
Filtering is now re-enabled, please test if you can still reproduce this.
Comment 5 caulier.gilles 2014-05-16 07:29:18 UTC
digiKam 4.0.0 is out :

http://www.digikam.org/node/713

Please check if this entry still valid with this new version.

Thanks in advance

Gilles Caulier
Comment 6 Jim Shipman 2014-05-24 02:36:54 UTC
This crash now happens after import while digikam is scanning for metadata in the background.  Exiv2 crashes whenever it runs into a file that it doesn't understand and this brings digikam down with it.

I reported this to the exiv2 bug tracker and they said that M2TS (MTS) video files were not suppoted by exiv2 and digikam should not have called exiv2 for unsupported file types.  They put my bug in as a "feature request" with low priority.

Right now I can't run digikam because right after it starts (idle to me, but scanning metadata in the background) it crashes because of exiv2.

digikam would be much more robust if it would trap these kind of exceptions and recover instead of simply crashing.  You will always be vulnerable to crashes by your dependencies unless you trap them and handle them yourself.

Jim Shipman
Comment 7 caulier.gilles 2014-05-24 04:13:01 UTC
digikam would be much more robust if it would trap these kind of exceptions and recover instead of simply crashing ==> crash must be handle properly in low level interface (Exiv2). After all, Exiv2 know better which files can be managed or not...

I close it as UPSTREAM (relevant of Exiv2)

Gilles Caulier
Comment 8 caulier.gilles 2018-03-14 04:42:51 UTC
Fixed with next 6.0.0 release which integrate a nex video metadata parser based
on FFMPEg instead Exiv2.

Gilles Caulier