hyperhive/hive-c0re/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 386741d38f hive-c0re: keep agent and manager listeners alive across accept errors
Both accept loops returned on the first accept() error. The AgentSocket
stayed in Coordinator.agents, so mcp_sockets::sync_on_start skipped the
agent, and only a Start node or a hive-c0re restart bound it again. The
unit sets no LimitNOFILE, so a single EMFILE at the 1024-fd soft limit
cut the agent off from send/recv/ack with one warn line as the only
trace.

Both loops now share accept_until_fatal. Connection errors
(ECONNABORTED/ECONNRESET/ECONNREFUSED) retry at once, any other error
retries after 1 s, following axum's serve loop that the dashboard
already runs. Errors that leave the listening fd unusable (EBADF,
EFAULT, EINVAL, ENOTSOCK, EOPNOTSUPP) log at error and exit the
process: nothing re-binds a listener while hive-c0re runs, the manager
listener has no re-bind path at all, and the unit's Restart=on-failure
restart runs start_manager and sync_on_start, which re-bind every
socket.

mcp_sockets.rs now states that invariant instead of asserting that a
listener can only disappear on restart.

LimitNOFILE is left unset: per-agent fd use is a listener plus a
Recv long-poll plus short-lived requests, and a higher limit would raise
the memory ceiling of the per-line bound (bound x open connections).

Closes #4721
2026-09-27 03:48:56 +02:00
..
agent_config hive-c0re: fail on an unparseable resource-limits or topology file, write both atomically 2026-09-27 02:41:38 +02:00
dashboard hive-sock-client, web proxy, HTTP clients: bound connect and response waits 2026-09-27 03:46:53 +02:00
forge hive-sock-client, web proxy, HTTP clients: bound connect and response waits 2026-09-27 03:46:53 +02:00
job_queue swarm-controller: own the swarm-wide forge objects; hive-c0re stops creating them 2026-09-25 08:36:05 +02:00
lifecycle hive-c0re: fail on an unparseable resource-limits or topology file, write both atomically 2026-09-27 02:41:38 +02:00
socket_server hive-c0re: keep agent and manager listeners alive across accept errors 2026-09-27 03:48:56 +02:00
stats topology: drop the parent field and the hierarchy it fed 2026-09-21 22:08:47 +02:00
stores topology: drop the parent field and the hierarchy it fed 2026-09-21 22:08:47 +02:00
workers hive-c0re: keep agent and manager listeners alive across accept errors 2026-09-27 03:48:56 +02:00
actions.rs hive-c0re: stop minting agent forge tokens 2026-09-24 17:48:53 +02:00
container_view.rs hive-c0re: fail on an unparseable resource-limits or topology file, write both atomically 2026-09-27 02:41:38 +02:00
coordinator.rs hive-c0re: fail on an unparseable permission file, write it atomically 2026-09-26 21:11:54 +02:00
dashboard_events.rs remove the 1NFR4 dashboard panel and the now-writer-less audit log 2026-08-31 00:18:21 +02:00
gateway_nginx.rs gateway: $connection_upgrade does not come from recommendedProxySettings 2026-09-02 09:04:24 +02:00
loose_ends.rs hive-agent-mcp, hive-c0re, hive-sh4re: drop agent param from get_loose_ends 2026-09-20 05:36:49 +02:00
main.rs log: send records natively to journald, keep stdout off-unit 2026-09-21 15:52:57 +02:00
matrix.rs hive-c0re: stop minting agents' matrix accounts 2026-09-25 08:31:01 +02:00
meta.rs hive-c0re: fail on an unparseable resource-limits or topology file, write both atomically 2026-09-27 02:41:38 +02:00
migrate.rs docs: repoint eighteen pointers whose section no longer exists 2026-09-02 09:00:23 +02:00
paths.rs swarm-controller: own the swarm-wide forge objects; hive-c0re stops creating them 2026-09-25 08:36:05 +02:00
priv_client.rs hive-c0re: stop minting agent forge tokens 2026-09-24 17:48:53 +02:00
server.rs hive-c0re: fail on an unparseable resource-limits or topology file, write both atomically 2026-09-27 02:41:38 +02:00
snapshot_push.rs refactor(#2862): one snapshot store per swarm, not one per peer 2026-07-31 22:15:37 +02:00
swarm_agent_status.rs swarm: present tense + no-queue-coordinates wording 2026-09-13 12:01:58 +02:00
swarm_notices.rs swarm: present tense + no-queue-coordinates wording 2026-09-13 12:01:58 +02:00
swarm_queue.rs swarm-queue-based lifecycle notices, replacing push_todo(MANAGER_AGENT) 2026-08-24 14:34:37 +02:00
swarm_status.rs hive-c0re: converge when the controller republishes, not only at boot 2026-09-03 00:36:57 +02:00
test_env.rs test(hive-c0re): one crate-wide lock for env-mutating tests 2026-08-19 01:38:54 +02:00
webhook_secret.rs hive-c0re: pin the two security boundaries that had no test 2026-09-23 17:00:44 +02:00