Skip to content

[ExtractorProcess] Simplify broken file detection and handle other crashes

David Edmundson requested to merge work/d_ed/baloo_index_failures into master

baloo_file spawns a helper baloo_file_extractor which is given a batch of files to index.

When this was first written there was only a one way pipe between the daemon and worker, so to identify broken files it performs a bisect of the batched files to ignore the file that is problematic.

Now we have a two-way pipe that notifies the daemon of the current file we can cut out this step and mark the file directly. The only change needed is making sure we flush the pipe for queued status updates when the worker quits.

This indirectly allows us to handle a more important bug. baloo_file_extractor is a gui app, baloo_file is not. If the platform goes down baloo_file_extractor would assert. Then we get stuck in a busy loop bisecting and ultimately failing on every file. Now we can identify worker crashes or asserts outside indexing and simply quit the daemon appropriately.

Merge request reports