summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-frameworks/baloo/files/baloo-5.26.0-runtime-crash.patch')
-rw-r--r--kde-frameworks/baloo/files/baloo-5.26.0-runtime-crash.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/kde-frameworks/baloo/files/baloo-5.26.0-runtime-crash.patch b/kde-frameworks/baloo/files/baloo-5.26.0-runtime-crash.patch
new file mode 100644
index 000000000000..0ae8b9b453d4
--- /dev/null
+++ b/kde-frameworks/baloo/files/baloo-5.26.0-runtime-crash.patch
@@ -0,0 +1,41 @@
+From: Christoph Cullmann <cullmann@kde.org>
+Date: Thu, 08 Sep 2016 22:00:40 +0000
+Subject: fix baloo_file crash with corrupted database
+X-Git-Url: http://quickgit.kde.org/?p=baloo.git&a=commitdiff&h=a03b0caa4ca1fbfc249bfc0c2730aac340bbf929
+---
+fix baloo_file crash with corrupted database
+
+CHANGELOG: Handle corruption of index database for baloo_file, try to recreate the database or abort if that fails.
+
+REVIEW: 128865
+---
+
+
+--- a/src/file/main.cpp
++++ b/src/file/main.cpp
+@@ -82,7 +82,23 @@
+ QFile::remove(path + "/index-lock");
+
+ Baloo::Database *db = Baloo::globalDatabaseInstance();
+- db->open(Baloo::Database::CreateDatabase);
++
++ /**
++ * try to open, if that fails, try to unlink the index db and retry
++ */
++ if (!db->open(Baloo::Database::CreateDatabase)) {
++ // delete old stuff, set to initial run!
++ qWarning() << "Failed to create database, removing corrupted database.";
++ QFile::remove(path + "/index");
++ QFile::remove(path + "/index-lock");
++ indexerConfig.setInitialRun(true);
++
++ // try to create now after cleanup, if still no works => fail
++ if (!db->open(Baloo::Database::CreateDatabase)) {
++ qWarning() << "Failed to create database after deleting corrupted one.";
++ return 1;
++ }
++ }
+
+ Baloo::MainHub hub(db, &indexerConfig);
+ return app.exec();
+