allenai / allenai/asta-autodiscovery

A failed expansion consumes the parent's experiment, so a transient failure is never retried

未關閉
#85 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
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 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。