tracker r2688 - branches/turtle/src/trackerd
- From: ifrade svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2688 - branches/turtle/src/trackerd
- Date: Wed, 10 Dec 2008 15:01:12 +0000 (UTC)
Author: ifrade
Date: Wed Dec 10 15:01:12 2008
New Revision: 2688
URL: http://svn.gnome.org/viewvc/tracker?rev=2688&view=rev
Log:
Backup metadata when tracker is shutdown_with_reindex
Modified:
branches/turtle/src/trackerd/tracker-main.c
Modified: branches/turtle/src/trackerd/tracker-main.c
==============================================================================
--- branches/turtle/src/trackerd/tracker-main.c (original)
+++ branches/turtle/src/trackerd/tracker-main.c Wed Dec 10 15:01:12 2008
@@ -608,6 +608,14 @@
static void
shutdown_databases (void)
{
+ TrackerMainPrivate *private;
+
+ private = g_static_private_get (&private_key);
+
+ /* If we are reindexing, save the user metadata */
+ if (private->reindex_on_shutdown) {
+ tracker_backup_save (private->ttl_backup_file);
+ }
/* Reset integrity status as threads have closed cleanly */
tracker_data_manager_set_db_option_int ("IntegrityCheck", 0);
}
@@ -755,7 +763,8 @@
}
static const gchar *
-get_ttl_backup_filename (void) {
+get_ttl_backup_filename (void)
+{
TrackerMainPrivate *private;
@@ -768,6 +777,8 @@
/*
* TODO: Ugly hack counting signals because the indexer is sending two "Finished" signals
* and only the second really mean "finished processing modules".
+ *
+ * Saving the last backup file to help with debugging.
*/
static void
crawling_finished_cb (TrackerProcessor *processor, gpointer user_data)
@@ -779,12 +790,18 @@
counter += 1;
if (counter >= 2) {
+ gchar *rebackup;
+
g_debug ("Uninstalling initial crawling callback");
g_signal_handler_disconnect (processor, *callback_id);
org_freedesktop_Tracker_Indexer_restore_backup (tracker_dbus_indexer_get_proxy (),
get_ttl_backup_filename (),
&error);
+ rebackup = g_strdup_printf ("%s.old",
+ get_ttl_backup_filename ());
+ g_rename (get_ttl_backup_filename (), rebackup);
+ g_free (rebackup);
} else {
g_debug ("%d finished signal", counter);
}
@@ -1103,7 +1120,8 @@
tracker_status_set_and_signal (TRACKER_STATUS_IDLE);
}
- if (flags & TRACKER_DB_MANAGER_FORCE_REINDEX) {
+ if (flags & TRACKER_DB_MANAGER_FORCE_REINDEX
+ || g_file_test (get_ttl_backup_filename, G_FILE_TEST_EXISTS)) {
g_debug ("Setting callback for crawling finish detection");
restore_cb_id = g_signal_connect (private->processor, "finished",
G_CALLBACK (crawling_finished_cb),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]