Repository navigation
macOS: detached herdr server leaves panes with no launchd bootstrap port, breaking DNS / getaddrinfo #1137
Replies: 1 comment
|
Some data from the herdr side, since the detach itself may not be the culprit. herdr's server is spawned with a plain So the pane most likely inherited "no bootstrap" from wherever the first Two things to try:
If a fresh server started from a Dock terminal still shows no manager name on 26.5.2, then Tahoe changed setsid semantics and that would be worth a bug report with that one line of output. |
Uh oh!
There was an error while loading. Please reload this page.
question
Should be a bu rport - but i am not allowed to report.
I think there are nay macos users allready fell in love with herdr like me.
If someone has a solution for this issue...
macOS: detached herdr server leaves panes with no launchd bootstrap port, breaking DNS /
getaddrinfoSummary
When detaching, please preserve at least the system bootstrap port for spawned panes (ideally join the user's Aqua domain), the way tmux and screen do. That would keep
getaddrinfo/ DNS-by-name and other Mach-service clients working inside panes without giving up persistence.Environment
26.5.20.7.1Symptoms (measured inside a running herdr pane, read-only commands)
launchctl managername→Could not get manager name.(no Aqua and no System bootstrap)curl https://example.com→ exit, no connection (getaddrinfofails)nslookup example.com→ works and returns a valid IPlaunchctl managernamethere returnsAqua.The split is consistent:
nslookup/hostsucceed because they do their own DNS over raw sockets, while anything routing throughgetaddrinfo/ mDNSResponder fails.What I already ruled out
reattach-to-user-namespacedoes not help. The classic tmux fix fails here:There is no root bootstrap to attach to in the first place, so this workaround cannot apply.
herdr --no-sessionis not a workaround when a persistent server is already running. From a normal GUI terminal, with the detached server up:So the documented single-process escape hatch and an already-running persistent server are mutually exclusive. That means there is currently no way to have both persistence (detached server) and working DNS inside a pane at the same time.
Process ancestry
The pane process chain is
launchd(1) -> herdr -> -zsh -> claude -> zsh. herdr hangs directly offlaunchdwith no registered plist (nothing under~/Library/LaunchAgentsor/Library/LaunchDaemons). The pane shell reportstty = ??andsession = 0: no controlling terminal, no GUI session context.Impact
This is not just a convenience issue. The detached server is exactly what enables the documented "SSH in from a phone/tablet and reattach" workflow. Because the same detach is what strips the bootstrap port, the two capabilities I actually want, remote reattach from an iPad and working DNS inside panes, are mutually exclusive today.
--no-sessionrestores DNS only by removing the persistent server, which is the thing the remote reattach depends on.Expected behavior
When detaching, please preserve at least the system bootstrap port for spawned panes (ideally join the user's Aqua domain), the way tmux and screen do. That would keep
getaddrinfo/ DNS-by-name and other Mach-service clients working inside panes without giving up persistence.Minimal reproduction
launchctl managername. Expected today:Could not get manager name.curl -sSI https://registry.npmjs.org. Expected today: fails to resolve host.Aqua, and the curl succeeds.Current workaround (for reference)
Single one-off fetch from inside a pane, bypassing
getaddrinfo:context
26.5.20.7.1All reactions