Bug 283088 - Crash after long startup - NFSed images
Summary: Crash after long startup - NFSed images
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Media (show other bugs)
Version: 1.9.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-30 11:21 UTC by Stephen
Modified: 2017-07-26 04:39 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 2.3.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephen 2011-09-30 11:21:33 UTC
Application: digikam (1.9.0)
KDE Platform Version: 4.7.1 (4.7.1)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-11-generic x86_64
Distribution: Ubuntu 11.04

-- Information about the crash:
- What I was doing when the application crashed:
Large image collection NFS drive, although database is local. I get this message on console: "KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work 
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
KCrash: Application 'digikam' crashing...
"

Had been working fine until last major Ubuntu upgrade.

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
[Current thread is 1 (Thread 0x7fb9d188c800 (LWP 3282))]

Thread 4 (Thread 0x7fb9bc876700 (LWP 3283)):
#0  __libc_enable_asynccancel () at ../nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S:61
#1  0x00007fb9c9048ee8 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:85
#2  0x00007fb9c64cd104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fb9c64cd9f2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fb9bd1d5c44 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#5  0x00007fb9c64f43e4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fb9c72e9d8c in start_thread (arg=0x7fb9bc876700) at pthread_create.c:304
#7  0x00007fb9c905604d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#8  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fb9ac52c700 (LWP 3285)):
[KCrash Handler]
#6  0x00007fb9c8fa3d05 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007fb9c8fa7ab6 in abort () at abort.c:92
#8  0x00007fb9c985a6dd in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007fb9c9858926 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007fb9c9858953 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007fb9c9858aa6 in __cxa_rethrow () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007fb9ca0f5fcc in QList<QFileInfo>::append (this=0x7fb9ac52b1b0, t=...) at ../../include/QtCore/../../src/corelib/tools/qlist.h:520
#13 0x00007fb9ca0f230a in QDir::entryInfoList (this=<value optimized out>, nameFilters=<value optimized out>, filters=<value optimized out>, sort=...) at io/qdir.cpp:1356
#14 0x00007fb9ca0f2cd7 in QDir::entryInfoList (this=<value optimized out>, filters=<value optimized out>, sort=<value optimized out>) at io/qdir.cpp:1268
#15 0x00007fb9ce76688f in Digikam::CollectionScanner::scanAlbum (this=0x7fb9ac52bd30, location=..., album=...) at /build/buildd/digikam-1.9.0/libs/database/collectionscanner.cpp:697
#16 0x00007fb9ce766b10 in Digikam::CollectionScanner::scanAlbum (this=0x7fb9ac52bd30, location=..., album=...) at /build/buildd/digikam-1.9.0/libs/database/collectionscanner.cpp:769
#17 0x00007fb9ce766b10 in Digikam::CollectionScanner::scanAlbum (this=0x7fb9ac52bd30, location=..., album=...) at /build/buildd/digikam-1.9.0/libs/database/collectionscanner.cpp:769
#18 0x00007fb9ce766b10 in Digikam::CollectionScanner::scanAlbum (this=0x7fb9ac52bd30, location=..., album=...) at /build/buildd/digikam-1.9.0/libs/database/collectionscanner.cpp:769
#19 0x00007fb9ce767746 in Digikam::CollectionScanner::scanAlbumRoot (this=0x7fb9ac52bd30, location=...) at /build/buildd/digikam-1.9.0/libs/database/collectionscanner.cpp:530
#20 0x00007fb9ce767a18 in Digikam::CollectionScanner::completeScan (this=0x7fb9ac52bd30) at /build/buildd/digikam-1.9.0/libs/database/collectionscanner.cpp:282
#21 0x00000000005ed6ff in Digikam::ScanController::run (this=0x1e2ca70) at /build/buildd/digikam-1.9.0/digikam/scancontroller.cpp:600
#22 0x00007fb9ca07c175 in QThreadPrivate::start (arg=0x1e2ca70) at thread/qthread_unix.cpp:320
#23 0x00007fb9c72e9d8c in start_thread (arg=0x7fb9ac52c700) at pthread_create.c:304
#24 0x00007fb9c905604d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#25 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fb9abd2b700 (LWP 3286)):
#0  0x00007fb9c9048f03 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fb9c64cd104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fb9c64cd639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fb9ca18e446 in QEventDispatcherGlib::processEvents (this=0x1e14100, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fb9ca162882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fb9ca162abc in QEventLoop::exec (this=0x7fb9abd2ad50, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007fb9ca079924 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492
#7  0x00007fb9ca144c2f in QInotifyFileSystemWatcherEngine::run (this=0x1e30420) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fb9ca07c175 in QThreadPrivate::start (arg=0x1e30420) at thread/qthread_unix.cpp:320
#9  0x00007fb9c72e9d8c in start_thread (arg=0x7fb9abd2b700) at pthread_create.c:304
#10 0x00007fb9c905604d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb9d188c800 (LWP 3282)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb9ca07c82b in wait (this=<value optimized out>, mutex=0x1e2cb30, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1e2cb30, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb9ca07b910 in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:722
#4  0x00000000005eabdf in Digikam::ScanController::shutDown (this=0x1e2ca70) at /build/buildd/digikam-1.9.0/digikam/scancontroller.cpp:322
#5  0x00000000005ecaed in Digikam::ScanController::~ScanController (this=0x1e2ca70, __in_chrg=<value optimized out>) at /build/buildd/digikam-1.9.0/digikam/scancontroller.cpp:303
#6  0x00000000005ecd07 in ~ScanControllerCreator () at /build/buildd/digikam-1.9.0/digikam/scancontroller.cpp:248
#7  destroy () at /build/buildd/digikam-1.9.0/digikam/scancontroller.cpp:252
#8  0x00007fb9c8fa9961 in __run_exit_handlers (status=1) at exit.c:78
#9  exit (status=1) at exit.c:100
#10 0x00007fb9b714c066 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#11 0x00007fb9cba868a8 in KApplication::xioErrhandler (this=0x7fff1d7c25b0, dpy=0x1bd1ca0) at ../../kdeui/kernel/kapplication.cpp:419
#12 0x00007fb9c7d87dee in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#13 0x00007fb9c7d8562d in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#14 0x00007fb9c7d75f1f in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#15 0x00007fb9cae2132c in x11EventSourceCheck (s=0x1bbf670) at kernel/qguieventdispatcher_glib.cpp:85
#16 0x00007fb9c64cc854 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007fb9c64cd122 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fb9c64cd639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fb9ca18e3ef in QEventDispatcherGlib::processEvents (this=0x1b274f0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#20 0x00007fb9cae214de in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#21 0x00007fb9ca162882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#22 0x00007fb9ca162abc in QEventLoop::exec (this=0x1dc07a0, flags=...) at kernel/qeventloop.cpp:201
#23 0x00000000005eaf79 in Digikam::ScanController::completeCollectionScan (this=0x1e2ca70, splash=<value optimized out>) at /build/buildd/digikam-1.9.0/digikam/scancontroller.cpp:415
#24 0x00000000005a3c13 in Digikam::DigikamApp::DigikamApp (this=0x2003040, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /build/buildd/digikam-1.9.0/digikam/digikamapp.cpp:200
#25 0x0000000000632d67 in main (argc=1, argv=0x7fff1d7c2d98) at /build/buildd/digikam-1.9.0/digikam/main.cpp:177

Possible duplicates by query: bug 196726, bug 196437, bug 195902.

Reported using DrKonqi
Comment 1 Marcel Wiesweg 2011-10-07 17:26:00 UTC
Memory allocation fails when listing a directory in QDir::entryInfoList. This would usually indicate out-of-memory condition, or rather a memory request which cannot be fulfilled. How many files are involved?
Comment 2 Stephen 2011-10-08 18:58:42 UTC
Just under 6000.

I  get 15 secs of network traffic, cpu goes 100% then over the next few minutes the memory is all used up (2G).

I will try on a machine with more memory.
Comment 3 Stephen 2011-10-09 10:55:06 UTC
Tried with a machine with 8G and got this:


KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work 
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
KCrash: Application 'digikam' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/stephen/.kde/socket-cherub/kdeinit4__0
Warning: connect() failed: : No such file or directory
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi directly
QSocketNotifier: Invalid socket 29 and type 'Read', disabling...
<unknown>: Fatal IO error 9 (Bad file descriptor) on X server :0.0.
Comment 4 Marcel Wiesweg 2011-10-09 14:28:17 UTC
Then indeed something is eating memory, and there is no good reason for that. If it worked with previous linux distros and same digikam version, chances are this is a bug somewhere in the system stack (Qt, file system, NFS driver)
Comment 5 Stephen 2011-10-21 10:54:38 UTC
Upgraded to Ubuntu 11.10 and problems has gone.

Thanks.