Renn F
68899ffda9
[F078] release_executor: deadline every subprocess (git/make/gh/clone)
...
A hung git/make/gh/clone would block the CEO-gated release loop
indefinitely. Wrap each proc.communicate() in asyncio.wait_for via a
shared _await_proc helper; on expiry proc.kill() the child and return a
non-zero rc (124) so every caller's fail-closed branch fires. Mirrors the
quality-gate _run_one kill-on-timeout idiom.
Deadlines are generous (30min gate / 10min clone / 5min push+gh) so a
legitimate slow op is never wrongly aborted — floor-assertion tests pin
the floors to guard exactly that logical regression. Green path returns
the real rc unchanged.
2026-06-28 17:56:03 +02:00
..
2026-06-28 16:47:09 +02:00
2026-06-27 00:54:43 +02:00
2026-06-18 03:33:47 +02:00
2026-06-15 20:47:41 +02:00
2026-06-21 20:31:42 +02:00
2026-06-28 17:00:20 +02:00
2026-06-28 17:00:20 +02:00
2026-06-28 16:36:21 +02:00
2026-06-21 02:48:07 +02:00
2026-06-17 16:50:11 +02:00
2026-06-25 18:35:52 +02:00
2026-06-16 18:01:40 +02:00
2026-06-28 15:45:54 +02:00
2026-06-28 17:00:20 +02:00
2026-06-20 19:10:21 +02:00
2026-06-28 17:00:20 +02:00
2026-06-28 16:47:09 +02:00
2026-06-25 18:35:52 +02:00
2026-06-28 16:47:09 +02:00
2026-06-28 16:47:09 +02:00
2026-06-19 09:15:01 +02:00
2026-06-28 16:47:09 +02:00
2026-06-16 18:01:40 +02:00
2026-06-17 06:36:28 +02:00
2026-06-25 18:35:52 +02:00
2026-06-28 16:47:09 +02:00
2026-06-27 07:19:35 +02:00
2026-06-15 20:47:41 +02:00
2026-06-25 01:07:05 +02:00
2026-06-27 20:48:28 +02:00
2026-06-26 01:43:08 +02:00
2026-06-28 16:47:09 +02:00
2026-06-28 16:47:09 +02:00
2026-06-23 07:26:41 +02:00
2026-06-26 01:43:08 +02:00
2026-06-28 10:30:42 +02:00
2026-06-26 01:43:08 +02:00
2026-06-28 16:47:09 +02:00
2026-06-28 16:47:09 +02:00
2026-06-25 07:29:27 +02:00
2026-06-27 07:19:35 +02:00
2026-06-21 02:56:53 +02:00
2026-06-19 09:15:01 +02:00
2026-06-27 19:52:01 +02:00
2026-06-28 17:00:20 +02:00
2026-06-28 02:02:33 +02:00
2026-06-22 03:49:45 +02:00
2026-06-28 17:00:20 +02:00
2026-06-28 16:47:09 +02:00
2026-06-28 17:56:03 +02:00
2026-06-26 01:43:08 +02:00
2026-06-26 01:43:08 +02:00
2026-06-28 16:47:09 +02:00
2026-06-26 01:43:08 +02:00
2026-06-28 16:32:31 +02:00
2026-06-26 01:43:08 +02:00
2026-06-21 02:48:07 +02:00
2026-06-15 20:47:41 +02:00
2026-06-15 20:47:41 +02:00
2026-06-15 20:47:41 +02:00
2026-06-17 20:52:47 +02:00
2026-06-28 16:18:56 +02:00
2026-06-28 04:22:27 +02:00
2026-06-28 17:00:20 +02:00
2026-06-15 20:47:41 +02:00
2026-06-21 02:48:07 +02:00
2026-06-26 22:47:57 +02:00
2026-06-23 07:26:41 +02:00
2026-06-28 16:36:21 +02:00
2026-06-17 20:50:07 +02:00
2026-06-22 13:02:59 +02:00
2026-06-28 17:02:04 +02:00
2026-06-28 17:05:36 +02:00
2026-06-22 12:37:46 +02:00
2026-06-22 22:59:18 +02:00
2026-06-22 01:59:41 +02:00