divviup / divviup/janus

Consider rejecting taskprov tasks whose task expiration exceeds the peer aggregator's report expiry age

Open
#4,675 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
70
Forks
16
Avg merge
4h 36m
Merged PRs (30d)
30

Description

Taskprov tasks have a task expiration date, past which an aggregator will refuse to participate in the task. But before a given peer aggregator can provision such tasks, Janus operators have to make a taskprov_peer_aggregators entry, which includes report_expiry_age, used to determine if artifacts are eligible for garbage collection. These two values can interact in surprising ways: suppose a peer aggregator's report expiry age is set to 14 days, but then they configure a task which expires in 21 days. If that leader sends aggregation jobs at the start of the task, it might expect to be able to collect the results of those jobs in an aggregate share 21 days later, but in fact Janus will have garbage collected them. We might want to do some validation at task provisioning time for this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the task provisioning path and how task expiration and peer-aggregator report_expiry_age are validated and used for garbage collection. Determine the intended behavior when task expiration exceeds the report expiry age, then add coverage for that provisioning case. Done means invalid configurations are rejected or the agreed alternative behavior is enforced by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.