Skip to content

Cross-seed search audit follow-ups: RSS scheduler hang, dropped partial flag, silent empty Recent #2157

Description

@s0up4200

Follow-ups surfaced by the audit behind #2156, deliberately left out of that PR.

RSS scheduler hang (worth its own fix): when an RSS search overlaps an indexer whose previous RSS task is still pending, Submit's RSS dedup skips that indexer without invoking a callback (internal/services/jackett/scheduler.go ~574-582) while searchIndexersWithScheduler already did completionWG.Add(len(indexers)) (internal/services/jackett/service.go ~395), so OnJobDone blocks on the WaitGroup forever: a silent no-result automation run plus a leaked goroutine. Possibly relevant to past "automation fell off" reports.

Frontend gaps: the backend's partial flag on the search response (internal/services/crossseed/models.go) is dropped by CrossSeedTorrentSearchResponse in web/src/types/crossseed.ts, so deadline/degraded results render with no partial indicator; and a search run's errorMessage is never rendered on the Cross-Seed page, so a failed run shows as an unexplained red X (the per-item detail is only visible after expanding the row).

jackett.Recent inverse quirk: it always invokes its callback with a nil error, so even total indexer failure reports success with empty results instead of surfacing an error to the RSS automation run.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions