Watch
0
0
Fork
You've already forked hyperhive
0

hive-c0re: bound forge API calls so a stalled forge can't wedge the swarm event loop

forgejo-api 0.11.1 takes no caller-built client, so a request to a forge that
accepts the connection and never answers waited forever. Every forge::api()
call site now goes through forge::bounded, a 10s timeout that errors naming the
operation. The PR-comment calls run inline in swarm_status::drain_swarm_events,
the one task serving both swarm subscriptions, so a stalled forge stopped both.

Refs #5066
This commit is contained in:
atlas 2026-10-09 15:30:57 +02:00 • committed by mara
commit 2b0154be28
5 changed files with 111 additions and 41 deletions

View file

@ -62,5 +62,8 @@ problem_details = { version = "0.9.0", features = ["axum"] }
utoipa.workspace = true
utoipa-axum.workspace = true
# `test-util` for `#[tokio::test(start_paused = true)]`: `forge::bounded`'s
# test asserts the deadline fires without waiting it out.
[dev-dependencies]
tempfile = "3"
tokio = { workspace = true, features = ["test-util"] }