hive-forge: exit after HIVE_FORGE_DEADLINE instead of hanging on a stalled forge
forgejo-api 0.11.1's sync client builds its own reqwest client with no timeout and takes no caller-supplied client (sync.rs: new and with_user_agent are the only constructors), so a forge that accepts a connection and then stalls blocked every typed verb forever. A watchdog thread now starts before the client is built. After HIVE_FORGE_DEADLINE seconds (default 900, five minutes above DOWNLOAD_TIMEOUT) it prints a hive-forge: FAILED: line and exits 75. It bounds the whole command, not each request, and a write may already have landed when it fires; the help text and docs/tools/forge.md say so.
This commit is contained in:
parent
e7a46d9728
commit
ccc6993703
7 changed files with 192 additions and 2 deletions
|
|
@ -12,7 +12,9 @@ Reads credentials from the environment (`HIVE_FORGE_URL`,
|
|||
swarm-UI-linked external forge account instead. The active repo
|
||||
resolves `-r/--repo` > the `origin` remote of the cwd's git checkout >
|
||||
`HIVE_FORGE_REPO` (last-resort override, unset by default) > a hard
|
||||
error — see `client::Client::from_env`.
|
||||
error — see `client::Client::from_env`. `HIVE_FORGE_DEADLINE` (seconds,
|
||||
default 900) caps one invocation; past it the binary exits 75 (see
|
||||
`src/deadline.rs`).
|
||||
|
||||
## When to use it
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue