Skip to content

Source output errors silently swallowed via .ok() #77

Description

@oritwoen

Every source implementation (range, wordlist, timestamps, files, stdin) calls .ok() on output.hit() and output.key(), silently discarding I/O errors. If the output backend fails mid-run (disk full, broken pipe), processing continues and results are lost without any notification.

Spotted during #76 review but it's across all sources, not specific to wordlist streaming.

Options:

  • Propagate errors with ? (requires reworking the Rayon closures since par_chunks/par_iter closures can't return Result)
  • Collect errors with a shared AtomicBool poison flag and bail after the chunk
  • Log the first error and continue (lossy but at least visible)

The Rayon constraint is the main reason .ok() exists here in the first place.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions