[tracker-miners/wip/carlosg/miner-changes: 13/19] tracker-miner-fs: Drop query for unextracted items
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/wip/carlosg/miner-changes: 13/19] tracker-miner-fs: Drop query for unextracted items
- Date: Thu, 18 Jun 2020 13:38:18 +0000 (UTC)
commit b482ab090b34791c23aa75e0017ed26f723b9072
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jun 17 14:19:16 2020 +0200
tracker-miner-fs: Drop query for unextracted items
Simply keep track of whether we did process any file, and trigger
extraction in that case. This misses the case where tracker-extract
crashes and we used to query again before re-starting, however we'll
rely on systemd for that as everything is in place to handle abnormal
exits.
This makes the tracker-extract watchdog largely ineffective too.
src/miners/fs/tracker-miner-files.c | 59 +++++--------------------------------
1 file changed, 7 insertions(+), 52 deletions(-)
---
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index aa504149d..c327ed5a2 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -53,8 +53,6 @@
#define LAST_CRAWL_FILENAME "last-crawl.txt"
#define NEED_MTIME_CHECK_FILENAME "no-need-mtime-check.txt"
-#define TRACKER_EXTRACT_DATA_SOURCE TRACKER_PREFIX_TRACKER "extractor-data-source"
-
#define DEFAULT_GRAPH "tracker:FileSystem"
#define TRACKER_MINER_FILES_GET_PRIVATE(o) (tracker_miner_files_get_instance_private (TRACKER_MINER_FILES
(o)))
@@ -76,10 +74,7 @@ struct TrackerMinerFilesPrivate {
TrackerStorage *storage;
TrackerExtractWatchdog *extract_watchdog;
- gboolean checking_unextracted;
guint grace_period_timeout_id;
- GCancellable *extract_check_cancellable;
- gchar *extract_check_query;
GVolumeMonitor *volume_monitor;
@@ -94,6 +89,8 @@ struct TrackerMinerFilesPrivate {
gboolean low_battery_pause;
+ gboolean start_extractor;
+
#if defined(HAVE_UPOWER) || defined(HAVE_HAL)
TrackerPower *power;
#endif /* defined(HAVE_UPOWER) || defined(HAVE_HAL) */
@@ -274,44 +271,15 @@ tracker_miner_files_class_init (TrackerMinerFilesClass *klass)
miner_files_error_quark = g_quark_from_static_string ("TrackerMinerFiles");
}
-static void
-check_unextracted_cb (GObject *object,
- GAsyncResult *res,
- gpointer user_data)
-{
- TrackerMinerFiles *mf = user_data;
- TrackerExtractWatchdog *watchdog = mf->private->extract_watchdog;
- TrackerSparqlCursor *cursor;
- GError *error = NULL;
-
- mf->private->checking_unextracted = FALSE;
- cursor = tracker_sparql_connection_query_finish (TRACKER_SPARQL_CONNECTION (object),
- res, &error);
- if (error) {
- g_warning ("Could not check unextracted items: %s", error->message);
- g_error_free (error);
- return;
- }
-
- if (tracker_sparql_cursor_next (cursor, mf->private->extract_check_cancellable, NULL))
- tracker_extract_watchdog_ensure_started (watchdog);
- else
- g_debug ("Not starting extractor. Nothing to do.");
-
- g_object_unref (cursor);
-}
-
static void
tracker_miner_files_check_unextracted (TrackerMinerFiles *mf)
{
- if (mf->private->checking_unextracted)
+ if (!mf->private->start_extractor)
return;
- mf->private->checking_unextracted = TRUE;
- tracker_sparql_connection_query_async (tracker_miner_get_connection (TRACKER_MINER (mf)),
- mf->private->extract_check_query,
- mf->private->extract_check_cancellable,
- check_unextracted_cb, mf);
+ mf->private->start_extractor = FALSE;
+ g_debug ("Starting extractor");
+ tracker_extract_watchdog_ensure_started (mf->private->extract_watchdog);
}
static gboolean
@@ -382,21 +350,10 @@ tracker_miner_files_init (TrackerMinerFiles *mf)
priv->mtime_check = TRUE;
priv->quark_mount_point_uuid = g_quark_from_static_string ("tracker-mount-point-uuid");
- priv->extract_check_cancellable = g_cancellable_new ();
-
rdf_types = tracker_extract_module_manager_get_all_rdf_types ();
rdf_types_str = g_strjoinv (",", rdf_types);
g_strfreev (rdf_types);
- priv->extract_check_query = g_strdup_printf ("SELECT ?u { "
- " ?u a nfo:FileDataObject ;"
- " nie:dataSource/tracker:available true ; "
- " nie:interpretedAs ?ie . "
- " ?ie a ?class . "
- " FILTER (?class IN (%s) && "
- " NOT EXISTS { ?u nie:dataSource <"
TRACKER_EXTRACT_DATA_SOURCE "> })"
- "} LIMIT 1",
- rdf_types_str);
g_free (rdf_types_str);
}
@@ -749,9 +706,6 @@ miner_files_finalize (GObject *object)
mf = TRACKER_MINER_FILES (object);
priv = mf->private;
- g_cancellable_cancel (priv->extract_check_cancellable);
- g_object_unref (priv->extract_check_cancellable);
- g_free (priv->extract_check_query);
g_free (priv->domain);
if (priv->grace_period_timeout_id != 0) {
@@ -2311,6 +2265,7 @@ miner_files_process_file (TrackerMinerFS *fs,
priv = TRACKER_MINER_FILES (fs)->private;
priv->extraction_queue = g_list_prepend (priv->extraction_queue, data);
+ priv->start_extractor = TRUE;
attrs = G_FILE_ATTRIBUTE_STANDARD_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]