Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

fix(reaper): 收尾只发生在「轮首一次」,落定延迟实测中位 533s——窗口内的人工 reopen 必被 processed=True 静默覆盖

Chiusa
#7 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Read run_once in keeper.py: the reaper fires once at startup (:661-662), _process_resource returns early for in-flight items (:425-426), and the write-back at :2119-2121 unconditionally sets processed=True, clobbering the clear-processed enqueue reopen_issues relies on (:900-923). Trace the ordering load_state → _reap_pipelines → save_state to see how a manual reopen in the completion window is lost, then compare against the dispatch/reopen state fields. Done means a reopen recorded after dispatch survives the reap and is redispatched, with a state round-trip regression test; the three proposed fixes are options, so the approach needs deciding first.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无

基线 HEAD = c08c667。

Summary

  • 收尾只在 run_once 开头一次(keeper.py:661-662);在途项在 _process_resource 直接 return(:425-426)。实测 84 个 run:run 结束到「pipeline 完成」日志延迟中位 533s(区间 335-835s)。
  • 收尾无条件覆盖人工处置:keeper.py:2119-2121 一律 it.processed=True; in_flight_since=None;而 reopen_issues 靠清 processed 入队(:900-923)。顺序:load_state(661) 读入 reopen → _reap_pipelines(662) 写回 processed=True → save_state(675)——人工在窗口内 reopen 被静默吃掉(CLI 还打印「keeper 下一轮会重新派发」)。
  • 放大器:轮内同步 agent 调用(patrol,最长 3900s×5 条)可把窗口拉到 >1h。

影响

人工 reopen 白做(今日 #100/#97/#107 被反复 re-screen 即此痕迹);run 期间(1-2.5h)comment 层整体冻结。

建议

① 派发记 dispatch_epoch,reopen 写 manual_reopen_at,收尾见 reopen 晚于 dispatch 则跳过 processed 并直接重派;② 派发闸发现无槽位时先对在途做 pid 探活收尾再判;③ 允许 in-flight 期间处理评论(仅禁同 issue 新 run)。

Lingua principale
Python
Stelle
0
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di jeffkit/issue-keeper

Tutte le issue di jeffkit/issue-keeper

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.