Bug 389468 - Immediate Crash On Metadata Sync
Summary: Immediate Crash On Metadata Sync
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Mysql (other bugs)
Version First Reported In: 5.7.0
Platform: Microsoft Windows Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-26 16:24 UTC by nintendoeatsxboxforlunch
Modified: 2022-01-07 05:22 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.0.0
Sentry Crash Report:


Attachments
dbconfig.xml (144.25 KB, application/xml)
2018-01-27 06:50 UTC, Maik Qualmann
Details

Note You need to log in before you can comment on or make changes to this bug.
Description nintendoeatsxboxforlunch 2018-01-26 16:24:45 UTC
Database is local SQL, all images saved on a network drive. Using maintenance tool with the only option selected being to sync from image metadata to database, the program immediately crashes.

Problem signature:
  Problem Event Name:	APPCRASH
  Application Name:	digikam.exe
  Application Version:	0.0.0.0
  Application Timestamp:	59babd38
  Fault Module Name:	msvcrt.dll
  Fault Module Version:	7.0.7601.17744
  Fault Module Timestamp:	4eeb033f
  Exception Code:	c0000005
  Exception Offset:	000000000001586f
  OS Version:	6.1.7601.2.1.0.256.48
  Locale ID:	1033
  Additional Information 1:	d1a3
  Additional Information 2:	d1a33e91d5f78b5e9a25309bf9f6ac2b
  Additional Information 3:	28e5
  Additional Information 4:	28e5c1511807601c0d6202b067a508da
Comment 1 caulier.gilles 2018-01-26 19:00:19 UTC
Please try with 5.9.0 pre-release bundle for windows :

https://files.kde.org/digikam/

Gilles Caulier
Comment 2 nintendoeatsxboxforlunch 2018-01-26 20:48:27 UTC
(In reply to caulier.gilles from comment #1)
> Please try with 5.9.0 pre-release bundle for windows :
> 
> https://files.kde.org/digikam/
> 
> Gilles Caulier

I uninstalled 2.7.0 and installed 2.9.0. When I open it I get the message "Failed to update the database schema from version 8 to version 9" and the scanning collections dialog displays an error at 0%. I tried reinstalling 2.9.0 and this continued. I would like to provide the error messages but I cannot finde where they are stored.

Thank you for the quick response by the way.
Comment 3 Maik Qualmann 2018-01-26 22:41:31 UTC
Download and start DebugView from Microsoft and post the output when you start digiKam.

Maik
Comment 4 nintendoeatsxboxforlunch 2018-01-26 22:45:19 UTC
[12880] digikam.widgets: Breeze icons ressource file found
[12880] digikam.general: AlbumWatch use QFileSystemWatcher
[12880] digikam.general: Database Parameters:
[12880]    Type:                     "QMYSQL"
[12880]    DB Core Name:             "digikam"
[12880]    DB Thumbs Name:           "digikam"
[12880]    DB Face Name:             "digikam"
[12880]    Connect Options:          ""
[12880]    Host Name:                "localhost"
[12880]    Host port:                3307
[12880]    Internal Server:          true
[12880]    Internal Server Path:     "E:/DigiDatabase"
[12880]    Internal Server Serv Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe"
[12880]    Internal Server Init Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysql_install_db.exe"
[12880]    Username:                 "root"
[12880]    Password:                 ""
[12880] 
[12880] digikam.databaseserver: Database Parameters:
[12880]    Type:                     "QMYSQL"
[12880]    DB Core Name:             "digikam"
[12880]    DB Thumbs Name:           "digikam"
[12880]    DB Face Name:             "digikam"
[12880]    Connect Options:          ""
[12880]    Host Name:                "localhost"
[12880]    Host port:                3307
[12880]    Internal Server:          true
[12880]    Internal Server Path:     "E:/DigiDatabase"
[12880]    Internal Server Serv Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe"
[12880]    Internal Server Init Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysql_install_db.exe"
[12880]    Username:                 "root"
[12880]    Password:                 ""
[12880] 
[12880] digikam.databaseserver: Internal Server data path: "E:/DigiDatabase/.mysql.digikam/db_data"
[12880] digikam.databaseserver: The mysql configuration was already up-to-date: "C:/Users/Adrian Hall/AppData/Local/digikam/mysql.conf"
[12880] digikam.databaseserver: Failed to open MySQL error log.
[12880] digikam.databaseserver: Database server: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe" ("--defaults-file=C:\\Users\\Adrian Hall\\AppData\\Local\\digikam\\mysql.conf", "--datadir=E:\\DigiDatabase\\.mysql.digikam\\db_data", "--skip-networking=0", "--port=3307")
[12880] digikam.databaseserver: Internal database server started
[12880] digikam.databaseserver: Running 0 seconds...
[12880] digikam.dbengine: Loading SQL code from config file "Z:/digiKam/data/digikam/database/dbconfig.xml"
[12880] digikam.dbengine: Checking XML version ID => expected:  3  found:  3
[12880] digikam.coredb: Core database: running schema update
[12880] digikam.coredb: Core database: have a structure version  8
[12880] digikam.coredb: Core database: makeUpdates  8  to  9
[12880] digikam.dbengine: Failure executing query:
[12880]  "" 
[12880] Error messages: "QMYSQL: Unable to execute query" "Cannot delete or update a parent row: a foreign key constraint fails" 1451 2 
[12880] Bound values:  ()
[12880] digikam.dbengine: Error while executing DBAction [ "UpdateSchemaFromV7ToV9" ] Statement [ "DROP TABLE IF EXISTS Albums_old;" ]
[12880] digikam.coredb: Core database: schema update to V 9 failed!
[12880] digikam.coredb: Core database: cannot process schema initialization
[12880] KMemoryInfo: Platform identified :  "WINDOWS"
[12880] KMemoryInfo: TotalRam:  34267824128
[12880] digikam.general: Allowing a cache size of 200 MB
Comment 5 Maik Qualmann 2018-01-26 23:00:05 UTC
For Albums_old no foreign key constraint should exist. First I have to see if I can reproduce it.

Maik
Comment 6 Maik Qualmann 2018-01-27 06:50:02 UTC
Created attachment 110141 [details]
dbconfig.xml

Trying to fix the schema update. Replace the dbconfig.xml with this one.

File path Windows:

C:\Program Files\digiKam\data\digikam\database

Maik
Comment 7 nintendoeatsxboxforlunch 2018-01-27 14:11:05 UTC
I replaced the dbconfig and was given the below error on startup


[3936] digikam.widgets: Breeze icons ressource file found
[3936] digikam.general: AlbumWatch use QFileSystemWatcher
[3936] digikam.general: Database Parameters:
[3936]    Type:                     "QMYSQL"
[3936]    DB Core Name:             "digikam"
[3936]    DB Thumbs Name:           "digikam"
[3936]    DB Face Name:             "digikam"
[3936]    Connect Options:          ""
[3936]    Host Name:                "localhost"
[3936]    Host port:                3307
[3936]    Internal Server:          true
[3936]    Internal Server Path:     "E:/DigiDatabase"
[3936]    Internal Server Serv Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe"
[3936]    Internal Server Init Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysql_install_db.exe"
[3936]    Username:                 "root"
[3936]    Password:                 ""
[3936] 
[3936] digikam.databaseserver: Database Parameters:
[3936]    Type:                     "QMYSQL"
[3936]    DB Core Name:             "digikam"
[3936]    DB Thumbs Name:           "digikam"
[3936]    DB Face Name:             "digikam"
[3936]    Connect Options:          ""
[3936]    Host Name:                "localhost"
[3936]    Host port:                3307
[3936]    Internal Server:          true
[3936]    Internal Server Path:     "E:/DigiDatabase"
[3936]    Internal Server Serv Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe"
[3936]    Internal Server Init Cmd: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysql_install_db.exe"
[3936]    Username:                 "root"
[3936]    Password:                 ""
[3936] 
[3936] digikam.databaseserver: Internal Server data path: "E:/DigiDatabase/.mysql.digikam/db_data"
[3936] digikam.databaseserver: The mysql configuration was already up-to-date: "C:/Users/Adrian Hall/AppData/Local/digikam/mysql.conf"
[3936] digikam.databaseserver: Database server: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe" ("--defaults-file=C:\\Users\\Adrian Hall\\AppData\\Local\\digikam\\mysql.conf", "--datadir=E:\\DigiDatabase\\.mysql.digikam\\db_data", "--skip-networking=0", "--port=3307")
[3936] digikam.databaseserver: "Database process exited unexpectedly during initial connection."
[3936] digikam.databaseserver: Executable: "Z:/digiKam/mariadb-10.2.12-winx64/bin//mysqld.exe"
[3936] digikam.databaseserver: Arguments: "--defaults-file=C:\\Users\\Adrian Hall\\AppData\\Local\\digikam\\mysql.conf, --datadir=E:\\DigiDatabase\\.mysql.digikam\\db_data, --skip-networking=0, --port=3307"
[3936] digikam.databaseserver: Stdout: ""
[3936] digikam.databaseserver: Stderr: "2018-01-27  8:42:48 4364 [Note] Z:\\digiKam\\mariadb-10.2.12-winx64\\bin\\\\mysqld.exe (mysqld 10.2.12-MariaDB-log) starting as process 10104 ...\r\n2018-01-27  8:42:48 4364 [ERROR] Can't find messagefile 'Z:\\digiKam\\mariadb-10.2.12-winx64\\share\\errmsg.sys'\r\n2018-01-27  8:42:48 4364 [ERROR] Aborting\r\n\r\n"
[3936] digikam.databaseserver: Exit code: 1
[3936] digikam.databaseserver: Process error: "Unknown error"
[3936] digikam.databaseserver: Cannot start internal database server

However, I was able to get in and setup the database again. I found that the entire contents of the MariaDB folder (which I had inside the Digikam folder) had been deleted except for mysqld. I didn't do this and the files are not in my antivirus quarantine, so at present I have no explanation.

I re-downloaded MariaDB and placed it outside of the Digikam folder. When I first set the location of mysqld and hit enter it gave me the same error about being able to update db scheme from 8 to 9.

I set the location of mysqld again and received no error, but it did not restore the old database. Digikam is currently re-scanning the network drive.
Comment 8 nintendoeatsxboxforlunch 2018-01-27 14:23:50 UTC
The scan completed but no images appeared in the program. I closed and restarted the program, then got the same error as in comment 2, but with different debug output

[8240] digikam.widgets: Breeze icons ressource file found
[8240] digikam.general: AlbumWatch use QFileSystemWatcher
[8240] digikam.general: Database Parameters:
[8240]    Type:                     "QMYSQL"
[8240]    DB Core Name:             "digikam"
[8240]    DB Thumbs Name:           "digikam"
[8240]    DB Face Name:             "digikam"
[8240]    Connect Options:          ""
[8240]    Host Name:                "localhost"
[8240]    Host port:                3307
[8240]    Internal Server:          true
[8240]    Internal Server Path:     "E:/DigiDatabase"
[8240]    Internal Server Serv Cmd: "Z:/mariadb-10.2.12-winx64/bin/mysqld.exe"
[8240]    Internal Server Init Cmd: "Z:/mariadb-10.2.12-winx64/bin/mysql_install_db.exe"
[8240]    Username:                 "root"
[8240]    Password:                 ""
[8240] 
[8240] digikam.databaseserver: Database Parameters:
[8240]    Type:                     "QMYSQL"
[8240]    DB Core Name:             "digikam"
[8240]    DB Thumbs Name:           "digikam"
[8240]    DB Face Name:             "digikam"
[8240]    Connect Options:          ""
[8240]    Host Name:                "localhost"
[8240]    Host port:                3307
[8240]    Internal Server:          true
[8240]    Internal Server Path:     "E:/DigiDatabase"
[8240]    Internal Server Serv Cmd: "Z:/mariadb-10.2.12-winx64/bin/mysqld.exe"
[8240]    Internal Server Init Cmd: "Z:/mariadb-10.2.12-winx64/bin/mysql_install_db.exe"
[8240]    Username:                 "root"
[8240]    Password:                 ""
[8240] 
[8240] digikam.databaseserver: Internal Server data path: "E:/DigiDatabase/.mysql.digikam/db_data"
[8240] digikam.databaseserver: The mysql configuration was already up-to-date: "C:/Users/Adrian Hall/AppData/Local/digikam/mysql.conf"
[8240] digikam.databaseserver: Failed to open MySQL error log.
[8240] digikam.databaseserver: Database server: "Z:/mariadb-10.2.12-winx64/bin/mysqld.exe" ("--defaults-file=C:\\Users\\Adrian Hall\\AppData\\Local\\digikam\\mysql.conf", "--datadir=E:\\DigiDatabase\\.mysql.digikam\\db_data", "--skip-networking=0", "--port=3307")
[8240] digikam.databaseserver: Internal database server started
[8240] digikam.databaseserver: Running 0 seconds...
[8240] digikam.dbengine: Loading SQL code from config file "Z:/digiKam/data/digikam/database/dbconfig.xml"
[8240] digikam.dbengine: Checking XML version ID => expected:  3  found:  3
[8240] digikam.coredb: Core database: running schema update
[8240] digikam.coredb: Core database: have a structure version  8
[8240] digikam.coredb: Core database: makeUpdates  8  to  9
[8240] digikam.dbengine: Failure executing query:
[8240]  "" 
[8240] Error messages: "QMYSQL: Unable to execute query" "Can't create table `digikam`.`#sql-1afc_13` (errno: 121 \"Duplicate key on write or update\")" 1005 2 
[8240] Bound values:  ()
[8240] digikam.dbengine: Error while executing DBAction [ "UpdateSchemaFromV7ToV9" ] Statement [ "ALTER TABLE Albums\n                                        ADD CONSTRAINT Albums_AlbumRoots FOREIGN KEY (albumRoot) REFERENCES AlbumRoots (id) ON DELETE CASCADE ON UPDATE CASCADE,\n                                        ADD UNIQUE (albumRoot, relativePath(255)),\n                                        ENGINE InnoDB;" ]
[8240] digikam.coredb: Core database: schema update to V 9 failed!
[8240] digikam.coredb: Core database: cannot process schema initialization
Comment 9 Maik Qualmann 2018-01-27 20:44:50 UTC
The error states that a constraint already exists with the name. But that's not really possible because the update procedure clears all of them. I think your DB is broken and you start with a new DB - Unfortunately.

Maik
Comment 10 nintendoeatsxboxforlunch 2018-01-28 16:08:42 UTC
Deleting the DB did eventually work. It crashed a couple of times during the db scan, but does now seem to have completed the entire thing.
Comment 11 caulier.gilles 2018-08-17 21:27:15 UTC
Can you reproduce the dysfunction using digiKam 6.0.0 pre-release bundle available here :

https://files.kde.org/digikam/

Gilles Caulier
Comment 12 nintendoeatsxboxforlunch 2018-08-18 17:38:33 UTC
It did not crash! I should say, I am now on a different processor architecture, OS and NAS.