Index: src/trackerd/trackerd.c =================================================================== RCS file: /cvs/gnome/tracker/src/trackerd/trackerd.c,v retrieving revision 1.54 diff -u -p -r1.54 trackerd.c --- src/trackerd/trackerd.c 5 Nov 2006 23:31:56 -0000 1.54 +++ src/trackerd/trackerd.c 15 Nov 2006 19:52:07 -0000 @@ -1247,9 +1247,10 @@ extract_metadata_thread (void) DBConnection *blob_db_con; DBConnection *cache_db_con; - /* block all signals in this thread */ - sigfillset (&signal_set); - pthread_sigmask (SIG_BLOCK, &signal_set, NULL); + /* block all signals in this thread, except SIGALRM */ + sigfillset (&signal_set); + sigdelset (&signal_set, SIGALRM); + pthread_sigmask (SIG_BLOCK, &signal_set, NULL); g_mutex_lock (tracker->metadata_signal_mutex); g_mutex_lock (tracker->metadata_stopped_mutex); Index: src/trackerd/tracker-metadata.c =================================================================== RCS file: /cvs/gnome/tracker/src/trackerd/tracker-metadata.c,v retrieving revision 1.18 diff -u -p -r1.18 tracker-metadata.c --- src/trackerd/tracker-metadata.c 16 Oct 2006 23:59:22 -0000 1.18 +++ src/trackerd/tracker-metadata.c 15 Nov 2006 19:52:20 -0000 @@ -127,6 +127,11 @@ char *development_mime_types[] = { "text/x-tcl" }; +static void +set_child_timeout_cb (gpointer user_data) +{ + alarm (30); +} static MetadataFileType tracker_get_metadata_type (const char *mime) @@ -287,7 +292,7 @@ tracker_metadata_get_text_file (const ch argv, NULL, G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, - NULL, + set_child_timeout_cb, NULL, NULL, NULL, @@ -371,7 +376,7 @@ tracker_metadata_get_thumbnail (const ch argv, NULL, G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, - NULL, + set_child_timeout_cb, NULL, NULL, NULL, @@ -444,7 +449,7 @@ tracker_metadata_get_embedded (const cha argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL, - NULL, + set_child_timeout_cb, NULL, &value, NULL,