allenai / allenai/asta-autodiscovery
A failed expansion consumes the parent's experiment, so a transient failure is never retried
- 主要語言
- Python
- 星號
- 10
- 分支
- 2
- 平均合併
- 1 天 21 小時
- 30 天內合併 PR
- 11
描述
Split out of #79, which fixed the spin but not this.
`_expand_node` in `packages/autodiscovery/src/autodiscovery/run.py` pops an experiment off `parent_node.untried_experiments` via `get_next_experiment`, then rolls the partially-created child out of `parent.children` if the expansion raises. The rollback does not put the experiment back, so the experiment is consumed by an attempt that produced nothing.
For the root that is the whole run: its only untried experiment is the data loader. One transient failure — a network blip, a single 429 that outlives the retry budget — leaves the root with nothing to retry and `allow_generate_experiments=False`. Before #79 that spun forever; after #79 it aborts the run with `NoProgressError`. Terminating is the right behavior for a *durable* failure, but a transient one should get another attempt at the same experiment.
Suggested fix: return the popped experiment to `untried_experiments` (and drop it from `tried_experiments`) on the rollback path, so the next iteration retries it. The consecutive-no-progress cap added in #79 already bounds how many times that can happen, so restoring it cannot reintroduce an unbounded loop.
Worth pairing with a regression test that fails expansion once and asserts the run recovers on the next iteration.
貢獻指南
這個儲存庫沒有索引到貢獻指南
評估
這個 Issue 還沒有評估資料。