fix(reaper): 收尾只发生在「轮首一次」,落定延迟实测中位 533s——窗口内的人工 reopen 必被 processed=True 静默覆盖
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
场景 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)。
- Lenguaje dominante
- Python
- Estrellas
- 0
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jeffkit/issue-keeper
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
jeffkit/issue-keeper#17 · 2 comentarios ·
-
keeper-ignore
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
jeffkit/issue-keeper#16 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
jeffkit/issue-keeper#11 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 24/100
jeffkit/issue-keeper#5 · 18 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 32/100
jeffkit/issue-keeper#3 · 5 comentarios ·
Todos los issues de jeffkit/issue-keeper
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Vector35/community-plugins#376 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
py-econometrics/pyfixest#1883 ·
Los mantenedores suelen responder en 1 día
-
bad links in rfc5890.htmlAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
ietf-tools/rfc2html#81 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
mysql/mysql-operator#60 ·
-
Python: Bug: split_plaintext_paragraph / split_markdown_paragraph can return a chunk larger than max_tokensPosiblemente ocupada @xThreeh la tomó hoy. Abiertopython triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
microsoft/semantic-kernel#14566 ·
Los mantenedores suelen responder en 4 días