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.
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_aggregatorsentry, which includesreport_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.