Bug 284909

Summary: Manually built 2.2.0 digikam crashes in first time settings selection
Product: [Applications] digikam Reporter: Bob McGowan <bob>
Component: Setup-FirstRunAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: bob, caulier.gilles
Priority: NOR    
Version: 2.2.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 2.3.0
Sentry Crash Report:

Description Bob McGowan 2011-10-25 01:02:38 UTC
Application: digikam (2.2.0)
KDE Platform Version: 4.6.5 (4.6.5)
Qt Version: 4.7.2
Operating System: Linux 3.0.0-13-lowlatency x86_64
Distribution: Ubuntu 11.04

-- Information about the crash:
- What I was doing when the application crashed:

My Ubuntu/Kubuntu default digikam is 1.9.0.  I was having problems with copying files (segmentatin faults, I believe) which appear to have been fixed in 2.x, so I decided to compile digikam to get version 2.2.0, rather than upgrad the OS and get version 2.1.0.

The compile was fine, and digikam runs, but with an error about not finding the dbconfig.xml file, related to the "database", and informing me I needed to configure digikam.  Click 'OK' and the main window opens, only two menu selections:  "Settings" and "Help".

Note that, despite the error, it does appear to have obtained my directory setup, because I have all albums listed in the left pane, and images (thumbnails of PPM files, the PPM files were created using ufraw in the 1.9.0 version).

I can select Album, Tag and Search views without issues, each displaying appropriate data from my original setup.

I'm able to select menu items from Help and some from Settings, but trying to use "Settings -> Configure Digikam" results in this crash.  This happened the first and second time I tried running the program.

I'm also running a low latency version of the 3.0 kenel, because I also use my system for sound recording with Jack.  I will try booting with the prior kernel and see if that changes anything.

Also, using the experimental 3D nouveau driver.  This will be replaced by the proprietary Nvidia driver with the prior kernel.

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fbf277e6a20 (LWP 2535))]

Thread 5 (Thread 0x7fbf04475700 (LWP 2538)):
#0  0x00007fbf1e929bac in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007fbf1fc4d82b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00000000005be7e0 in Digikam::ScanController::run (this=0x2627650) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/digikam/database/scancontroller.cpp:647
#3  0x00007fbf1fc4d175 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007fbf1e924d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007fbf1ec2204d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fbf03c74700 (LWP 2539)):
#0  0x00007fbf1e928d9d in pthread_mutex_unlock () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007fbf19ff51b3 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbf19ff5639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fbf1fd5f446 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007fbf1fd33882 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007fbf1fd33abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007fbf1fc4a924 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007fbf1fd15c2f in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007fbf1fc4d175 in ?? () from /usr/lib/libQtCore.so.4
#9  0x00007fbf1e924d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007fbf1ec2204d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fbf03473700 (LWP 2645)):
#0  0x00007fbf1e929bac in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007fbf1fc4d82b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fbf24788bc7 in Digikam::ParkingThread::run (this=0x2738360) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/libs/threads/threadmanager.cpp:119
#3  0x00007fbf1fc4d175 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007fbf1e924d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007fbf1ec2204d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fbf00c0f700 (LWP 2646)):
#0  0x00007fbf1ec14f03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fbf19ff5104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbf19ff5639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fbf1fd5f446 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007fbf1fd33882 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007fbf1fd33abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007fbf1fc4a924 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007fbf1fd15c2f in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007fbf1fc4d175 in ?? () from /usr/lib/libQtCore.so.4
#9  0x00007fbf1e924d8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007fbf1ec2204d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fbf277e6a20 (LWP 2535)):
[KCrash Handler]
#6  Digikam::ImageHistogram::calculateInThread (this=0x0) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/libs/dimg/filters/levels/imagehistogram.cpp:143
#7  0x00007fbf2467a0e2 in Digikam::HistogramWidget::HistogramWidget (this=0x4c290b0, w=256, h=128, i_data=0x0, i_w=0, i_h=0, i_sixteenBits=false, parent=0x4c28050, selectMode=false, showProgress=false, statisticsVisible=false) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/libs/dimg/filters/levels/histogramwidget.cpp:149
#8  0x00000000004d9580 in Digikam::SetupEditor::SetupEditor (this=0x4b85b90, parent=<value optimized out>) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/utilities/setup/setupeditor.cpp:215
#9  0x00000000004c778b in Digikam::Setup::Setup (this=0x404f2e0, parent=<value optimized out>) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/utilities/setup/setup.cpp:241
#10 0x00000000004c9f90 in Digikam::Setup::exec (parent=0x2784e40, page=Digikam::Setup::LastPageUsed) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/utilities/setup/setup.cpp:410
#11 0x0000000000573d4f in Digikam::DigikamApp::qt_metacall (this=0x2784e40, _c=QMetaObject::InvokeMetaMethod, _id=37, _a=0x7fff0fc5f2c0) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/digikam/digikamapp.moc:254
#12 0x00007fbf1fd495f8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#13 0x00007fbf20945122 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
#14 0x00007fbf2094530f in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
#15 0x00007fbf20d899f3 in ?? () from /usr/lib/libQtGui.so.4
#16 0x00007fbf20d8f9aa in ?? () from /usr/lib/libQtGui.so.4
#17 0x00007fbf21735bfd in KMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libkdeui.so.5
#18 0x00007fbf2099ccc8 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#19 0x00007fbf20d90b8b in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4
#20 0x00007fbf2094b9f4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#21 0x00007fbf20950dc3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#22 0x00007fbf2166f6c6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#23 0x00007fbf1fd3449c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#24 0x00007fbf2094ca1d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#25 0x00007fbf209ce3e4 in ?? () from /usr/lib/libQtGui.so.4
#26 0x00007fbf209ccab7 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#27 0x00007fbf209f5842 in ?? () from /usr/lib/libQtGui.so.4
#28 0x00007fbf19ff4bcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007fbf19ff53a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fbf19ff5639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fbf1fd5f3ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#32 0x00007fbf209f54de in ?? () from /usr/lib/libQtGui.so.4
#33 0x00007fbf1fd33882 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#34 0x00007fbf1fd33abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#35 0x00007fbf1fd37ecb in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#36 0x000000000068f964 in main (argc=5, argv=0x7fff0fc61548) at /home/rmcgowan/dev/digikam/digikam-2.2.0/core/digikam/main/main.cpp:232

Reported using DrKonqi
Comment 1 Bob McGowan 2011-10-25 02:31:58 UTC
I have reverted to kernel 2.6.38, and tried with both the nouvou and Nvidia graphics drivers, but digikam continues to crash.
Comment 2 caulier.gilles 2011-10-25 02:37:05 UTC
It crash in histogram computation. There are few report like this, but i cannot reproduce the crash here. 

What compilation options do you use to compile digiKam ? Which compiler version and Qt4/KDE4 libs version ? etc...

Gilles Caulier
Comment 3 caulier.gilles 2011-10-25 02:43:24 UTC
Hum, afetr reflexion, the crash appear in histogram computed in setup editor view, probably with test image used to configure over/under exposure indicators.

I suspect that image is not loaded in memory (not installed in your computer). Sure code must be coded to not crash (and it must be like this), but why image data is null here (i_data=0x0) ?

#7  0x00007fbf2467a0e2 in Digikam::HistogramWidget::HistogramWidget
(this=0x4c290b0, w=256, h=128, i_data=0x0, i_w=0, i_h=0, i_sixteenBits=false,
parent=0x4c28050, selectMode=false, showProgress=false,
statisticsVisible=false) at
/home/rmcgowan/dev/digikam/digikam-2.2.0/core/libs/dimg/filters/levels/histogramwidget.cpp:149

Can you copy and paste the console trace of 'make install' from digiKam installation ?

Gilles Caulier
Comment 4 Bob McGowan 2011-10-26 04:26:06 UTC
Hi, Gilles,

I'm in the middle of producing a video slide show for a program happening in less than two weeks, so I tried to move around this problem by upgrading my Kubuntu system to 11.10, so I'd have access to a pre-compiled 2.x digikam.

This one also crashes, in the same place.  It is version 2.1.0.

I can supply additional information and run the 'make', but it will have to wait a bit ;(  I have to get this project finished first, somehow.
Comment 5 caulier.gilles 2011-11-03 12:42:43 UTC
digiKam 2.2.0 is out since few weeks. Crash still valid with this version ?

Gilles Caulier
Comment 6 Marcel Wiesweg 2011-11-05 14:03:36 UTC
Git commit 37cf060233cf4f0085a7f021c37f8d35cefc0ba4 by Marcel Wiesweg.
Committed on 05/11/2011 at 15:01.
Pushed by mwiesweg into branch 'master'.

Prevent crash in setup if application data is not properly installed

HistogramWidget is old code taking a raw data pointer, thus is can crash when given a null pointer.
If application data is not properly installed, the DImg may be null

BUG: 284909

M  +2    -1    NEWS
M  +7    -5    utilities/setup/setupeditor.cpp

http://commits.kde.org/digikam/37cf060233cf4f0085a7f021c37f8d35cefc0ba4
Comment 7 Marcel Wiesweg 2011-11-05 14:14:14 UTC
You did not properly install the application data files.
So there is another problem here: Digikam should never have started at all if the dbconfig.xml file is not found.
Comment 8 Marcel Wiesweg 2011-11-05 14:37:04 UTC
Git commit 990cd81879b9190f93f3485ac31d63ba30a41ff7 by Marcel Wiesweg.
Committed on 05/11/2011 at 15:36.
Pushed by mwiesweg into branch 'master'.

Prevent startup if dbconfig.xml is not properly installed

CCBUG: 284909

M  +7    -0    libs/database/databaseaccess.cpp
M  +9    -0    libs/database/databaseconfigelement.cpp

http://commits.kde.org/digikam/990cd81879b9190f93f3485ac31d63ba30a41ff7