Hello Martyn, Sorry, I have not yet had time to test the code in TRUNK yet to see if I still get this issue. I'm going to be busy for the next couple of weeks but I'll try to squeeze it in.
Matt -----Original Message----- From: Martyn Russell [mailto:[email protected]] Sent: Saturday, March 07, 2009 1:51 AM To: Compton, Matthew Cc: [email protected] Subject: Re: [Tracker] Issue with Tracker state and removable media Compton, Matthew wrote: > Hello, Hi :) > I've found that when I configure Tracker to ONLY index removable media > (i.e. IndexMountedDirectories and IndexRemovableMedia are set to true, > no CrawlDirectory or WatchDirectoryRoots are set, and all modules > except for the files module are disabled) it will get in a strange > state on start up (or so it would seem). When trackerd is started the > function > process_module() sets TRACKER_STATUS_PENDING and, if nothing is sent > to the indexer, it will remain in this state. So when a USB drive is > plugged in and mounted it will be detected by Tracker but not indexed > because Tracker is still PENDING and not INDEXING, OPTIMIZING, or IDLE > (see the function mount_point_added_cb). Normally when trackerd is > started and it has something to index it is left in > TRACKER_STATUS_IDLE once the indexer is done so when a USB drive is > plugged in it gets indexed as expected. > > I've modified the tracker_processor_stop function to check for this > case and set the tracker status to TRACKER_STATUS_IDLE. I've tested > it and it seems to work fine. Could some one please look into adding > this change to the Tracker source. If this is not the correct fix, > could someone look into this issue? We are about to release 0.6.91 (next week) and we have fixed a bunch of state issues since 0.6.90. Is it possible that you can test with TRUNK to see if the problem still persists? > Here is my diff against the 0.6.90 release: > > > --- a/src/trackerd/tracker-processor.c > +++ b/src/trackerd/tracker-processor.c > @@ -1784,7 +1784,24 @@ tracker_processor_stop (TrackerProcessor > *processor) > > processor->private->finished = TRUE; > g_signal_emit (processor, signals[FINISHED], 0); > - } else { > + > + > + /* Added check for special case when nothing is indexed. > Function > + * process_module() sets TRACKER_STATUS_PENDING and if there > + is > nothing to > + * send to the indexer we will end up here and set > TRACKER_STATUS_IDLE so > + * when a removable drive is inserted it will be indexed. > + */ > + /* TODO: Need more investigation, works as is, but may only > need to check > + * directories_found == 0 && > + * files_found == 0 > + */ > + }else if (processor->private->directories_found == 0 && > + processor->private->directories_ignored == 0 && > + processor->private->files_found == 0 && > + processor->private->files_ignored == 0 && > + tracker_monitor_get_count > (processor->private->monitor, NULL) == 0){ > + tracker_status_set_and_signal (TRACKER_STATUS_IDLE); > + }else { > item_queue_handlers_set_up (processor); > } > } Thanks for the patch! -- Regards, Martyn _______________________________________________ tracker-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/tracker-list
