Skip to content

Indexer exits 0 when every selected dataset failed #713

Description

@ddeboer

Summary

A run in which every dataset failed still reports success and exits 0. A scheduled indexer that loses access to its data source reports green indefinitely while indexing nothing.

Observed

search-indexer:0.6.0, one dataset selected, Docker socket unreachable so the QLever import could not start:

- Selecting datasets
✔ Selected datasets: found 1 dataset in 595ms

Dataset https://id.drapo.nl/dataset/drapo-schemaorg
  ✔ Data dump https://data.drapo.nl/dataset/schemaorg.export.trig (HTTP 200)
   - Importing…
   ✖ Import failed: connect EACCES /var/run/docker.sock
  ✖ Skipped: No SPARQL endpoint or importable data dump available

Pipeline completed in 2m 0.6s

echo $?0. The failure is visible in the log and invisible to anything watching the exit code.

Not a data-loss bug

InPlaceRebuild already declines to sweep a failed dataset (“its output is incomplete, and the next successful run reconciles”), so nothing is deleted. This is purely about the run's own verdict.

Suggested direction

Exit non-zero when no selected dataset produced output. Per-dataset tolerance is right – one failure among many should not fail the run – but all of them failing is indistinguishable from a broken deployment, and “completed” overstates it.

Worth deciding alongside the adjacent note in #697, on a selection that fails or returns empty.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions