[tracker/corruption] libtracker-data: Report database corruption



commit 929771bdf78aa50edabf1ad32a7c7ca0d134c137
Author: JÃrg Billeter <j bitron ch>
Date:   Mon Sep 5 15:18:30 2011 +0200

    libtracker-data: Report database corruption

 src/libtracker-data/tracker-db-interface-sqlite.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c
index 45e973b..2e84345 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -1387,6 +1387,27 @@ execute_stmt (TrackerDBInterface  *interface,
 			            sqlite3_errmsg (interface->db),
 			            g_strerror (errno));
 
+			if (g_file_test ("/usr/sbin/rich-core-dumper", G_FILE_TEST_EXISTS)) {
+				GError *spawn_error = NULL;
+				const gchar *argv[5];
+
+				argv[0] = "/bin/bash";
+				argv[1] = "/usr/bin/tracker-report-corruption";
+				argv[2] = g_get_prgname ();
+				argv[3] = sqlite3_errmsg (interface->db);
+				argv[4] = NULL;
+
+				g_spawn_sync (NULL, (gchar **) argv, NULL,
+				              G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
+				              NULL, NULL,
+				              NULL, NULL, NULL,
+				              &spawn_error);
+				if (spawn_error) {
+					g_warning ("Unable to report database corruption: %s", spawn_error->message);
+					g_clear_error (&spawn_error);
+				}
+			}
+
 #ifndef DISABLE_JOURNAL
 			g_unlink (interface->filename);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]