Bug 372628 - Crash at startup connecting to MySQL 5.7 database
Summary: Crash at startup connecting to MySQL 5.7 database
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Mysql (show other bugs)
Version: 5.3.0
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-11-18 14:49 UTC by meku
Modified: 2017-06-29 14:53 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.4.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description meku 2016-11-18 14:49:22 UTC
Application: digikam5 (5.3.0)

Qt Version: 5.6.1
Frameworks Version: 5.26.0
Operating System: Linux 4.8.0-27-generic x86_64
Distribution: Ubuntu 16.10

-- Information about the crash:
Digikam5 is configured to use an external database server. It was working with MySQL 5.6 but since upgrading to MySQL 5.7.15 this crash always occurs when Digikam starts.

$ digikam5
Digikam.general: AlbumWatch use QFileSystemWatcher
digikam.general: Database Parameters:
   Type:                     "QMYSQL"
   DB Core Name:             "digikam5_core"
   DB Thumbs Name:           "digikam5_thumb"
   DB Face Name:             "digikam5_face"
   Connect Options:          ""
   Host Name:                "hostname"
   Host port:                3306
   Internal Server:          false
   Internal Server Path:     ""
   Internal Server Serv Cmd: ""
   Internal Server Init Cmd: ""
   Username:                 "digikamuser"
   Password:                 "XXXXXXXX"

digikam.dbengine: Loading SQL code from config file "/usr/share/digikam/database/dbconfig.xml"
digikam.dbengine: Checking XML version ID => expected:  3  found:  3
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = digikam5 path = /usr/bin pid = 523
KCrash: Arguments: /usr/bin/digikam5 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi from kdeinit
sock_file=/run/user/1000/kdeinit5__0
QSocketNotifier: Invalid socket 12 and type 'Read', disabling...
QSocketNotifier: Invalid socket 17 and type 'Read', disabling...
QSocketNotifier: Invalid socket 20 and type 'Exception', disabling...
QSocketNotifier: Invalid socket 15 and type 'Read', disabling...
QSocketNotifier: Invalid socket 19 and type 'Read', disabling...

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam5), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
[Current thread is 1 (Thread 0x7fe45969ab40 (LWP 523))]

Thread 4 (Thread 0x7fe455226700 (LWP 527)):
[KCrash Handler]
#6  __GI___pthread_mutex_lock (mutex=0x20) at ../nptl/pthread_mutex_lock.c:67
#7  0x00007fe447a76099 in ?? () from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
#8  0x00007fe447a4bbf0 in ?? () from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
#9  0x00007fe447a225cc in mysql_real_connect () from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
#10 0x00007fe458b8495a in QMYSQLDriver::open (this=0x7fe44c016790, db=..., user=..., password=..., host=..., port=3306, connOpts=...) at ../../../sql/drivers/mysql/qsql_mysql.cpp:1340
#11 0x00007fe48741f420 in QSqlDatabase::open (this=this@entry=0x7fe44c002db0) at kernel/qsqldatabase.cpp:835
#12 0x00007fe485a9cda8 in Digikam::BdEngineBackendPrivate::databaseForThread (this=this@entry=0x5626f60e6160) at ./core/libs/database/engine/dbenginebackend.cpp:170
#13 0x00007fe485a9d530 in Digikam::BdEngineBackend::open (this=0x5626f60e3e00, parameters=...) at ./core/libs/database/engine/dbenginebackend.cpp:763
#14 0x00007fe483b05110 in Digikam::CoreDbAccess::checkReadyForUse (observer=observer@entry=0x7fe4872579b0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder+16>) at ./core/libs/database/coredb/coredbaccess.cpp:295
#15 0x00007fe48695885b in Digikam::ScanController::run (this=0x7fe4872579a0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at ./core/libs/database/utils/scancontroller.cpp:686
#16 0x00007fe483ecdc68 in QThreadPrivate::start (arg=0x7fe4872579a0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at thread/qthread_unix.cpp:341
#17 0x00007fe48031d70a in start_thread (arg=0x7fe455226700) at pthread_create.c:333
#18 0x00007fe4831f30af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7fe455a27700 (LWP 526)):
#0  0x00007fe47b606009 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe47b5c0121 in g_main_context_query () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe47b5c0948 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe47b5c0aec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fe4840fb4ab in QEventDispatcherGlib::processEvents (this=0x7fe4480008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#5  0x00007fe4840a30fa in QEventLoop::exec (this=this@entry=0x7fe455a26a50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007fe483ec8d43 in QThread::exec (this=this@entry=0x7fe4805bdd60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:500
#7  0x00007fe480549575 in QDBusConnectionManager::run (this=0x7fe4805bdd60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:171
#8  0x00007fe483ecdc68 in QThreadPrivate::start (arg=0x7fe4805bdd60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:341
#9  0x00007fe48031d70a in start_thread (arg=0x7fe455a27700) at pthread_create.c:333
#10 0x00007fe4831f30af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7fe459675700 (LWP 524)):
#0  0x00007fe4831f4050 in __libc_recvmsg (fd=3, msg=0x7fe459672990, flags=0) at ../sysdeps/unix/sysv/linux/recvmsg.c:28
#1  0x00007fe4768d749f in udev_monitor_receive_device () from /lib/x86_64-linux-gnu/libudev.so.1
#2  0x00007fe463d7b6db in ?? () from /lib/x86_64-linux-gnu/libusb-1.0.so.0
#3  0x00007fe48031d70a in start_thread (arg=0x7fe459675700) at pthread_create.c:333
#4  0x00007fe4831f30af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7fe45969ab40 (LWP 523)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fe483eceb2b in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x5626f60f4bd0) at thread/qwaitcondition_unix.cpp:136
#2  QWaitCondition::wait (this=this@entry=0x5626f60f65e0, mutex=mutex@entry=0x5626f60f65c0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3  0x00007fe483ecd80e in QThread::wait (this=this@entry=0x7fe4872579a0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>, time=time@entry=18446744073709551615) at thread/qthread_unix.cpp:672
#4  0x00007fe486954322 in Digikam::ScanController::shutDown (this=this@entry=0x7fe4872579a0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at ./core/libs/database/utils/scancontroller.cpp:317
#5  0x00007fe486956ee6 in Digikam::ScanController::~ScanController (this=0x7fe4872579a0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>, __in_chrg=<optimized out>) at ./core/libs/database/utils/scancontroller.cpp:293
#6  0x00007fe486956fa9 in Digikam::ScanControllerCreator::~ScanControllerCreator (this=<optimized out>, __in_chrg=<optimized out>) at ./core/libs/database/utils/scancontroller.cpp:233
#7  Digikam::(anonymous namespace)::Q_QGS_creator::Holder::~Holder (this=<optimized out>, __in_chrg=<optimized out>) at ./core/libs/database/utils/scancontroller.cpp:240
#8  0x00007fe4831252e0 in __run_exit_handlers (status=status@entry=1, listp=0x7fe4834ac5d8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:83
#9  0x00007fe48312533a in __GI_exit (status=status@entry=1) at exit.c:105
#10 0x00007fe458aacd53 in QXcbConnection::processXcbEvents (this=0x5626f606e9e0) at qxcbconnection.cpp:1687
#11 0x00007fe4840d3699 in QObject::event (this=0x5626f606e9e0, e=<optimized out>) at kernel/qobject.cpp:1256
#12 0x00007fe4849e08ac in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5626f606e9e0, e=0x7fe450003320) at kernel/qapplication.cpp:3804
#13 0x00007fe4849e5d4f in QApplication::notify (this=0x7fff630af4d0, receiver=0x5626f606e9e0, e=0x7fe450003320) at kernel/qapplication.cpp:3561
#14 0x00007fe4840a53b0 in QCoreApplication::notifyInternal2 (receiver=0x5626f606e9e0, event=event@entry=0x7fe450003320) at kernel/qcoreapplication.cpp:1015
#15 0x00007fe4840a733c in QCoreApplication::sendEvent (event=0x7fe450003320, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:225
#16 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x5626f5ff9ee0) at kernel/qcoreapplication.cpp:1650
#17 0x00007fe4840a77f8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1508
#18 0x00007fe4840fb083 in postEventSourceDispatch (s=0x5626f60ad610) at kernel/qeventdispatcher_glib.cpp:270
#19 0x00007fe47b5c07d7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007fe47b5c0a40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007fe47b5c0aec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fe4840fb4ab in QEventDispatcherGlib::processEvents (this=0x5626f60b3620, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#23 0x00007fe4840a30fa in QEventLoop::exec (this=0x5626f60f5460, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#24 0x00007fe486957e5f in Digikam::ScanController::databaseInitialization (this=0x7fe4872579a0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at ./core/libs/database/utils/scancontroller.cpp:381
#25 0x00007fe486ba3702 in Digikam::AlbumManager::setDatabase (this=0x7fe487258400 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>, params=..., priority=<optimized out>, suggestedAlbumRoot=...) at ./core/libs/album/albummanager.cpp:767
#26 0x00005626f5d06a20 in main (argc=<optimized out>, argv=<optimized out>) at ./core/app/main/main.cpp:190

Reported using DrKonqi
Comment 1 caulier.gilles 2016-11-25 16:01:55 UTC
Any feedback with current AppImage bundle for Linux ?

https://drive.google.com/drive/folders/0BzeiVr-byqt5Y0tIRWVWelRJenM

Gilles Caulier
Comment 2 meku 2016-11-27 13:41:33 UTC
This crash occurs when using the packages from philip5 PPA.

I tested the AppImage bundles for Digikam 5.3.0 & 5.4.0 and both work with the database.
Comment 3 caulier.gilles 2016-11-27 16:00:54 UTC
Thanks for the feedback...

Gilles Caulier