Re:Gentoo News: Copy Fail, Dirty Frag, and Fragnesia Kernel ...
by lanstin on Tuesday May 19, 2026 @09:31PM
(#48201949)
You need a server push "reconnect here" in your protocol. Makes maintenance of all sorts a much easier deal.
Re:Gentoo News: Copy Fail, Dirty Frag, and Fragnesia Kernel ...
by deathanatos on Wednesday May 20, 2026 @02:11AM
(#48203727)
> Restarting all the servers would result in many clients reconnecting several times. It was better to avoid it when possible.
As a sibling says, you need a "reconnect now" in the protocol. (GOAWAY, in HTTP.)
In addition to what the sibling says, if you have some sort of cordoning/graceful drain facility at the traffic level, you can also prevent the "several times" bit: bring new, patched nodes online. Disallow new connections to the outgoing nodes. Drain the outgoing nodes. Decommission them.
(I.e., only permit reconnects to patched nodes.)
I've run systems with live code updates for userland, and would have considered live kernel updates if it was reasonable on our systems.
The thing is you typically build your system to tolerate reboot or unscheduled stop of a single node. Scheduled stop is nicer, but systems sometimes lock up even when you're not doing risky behaviors, so you know.
But just because the system can tolerate a reboot or restart doesn't mean it's not disruptive. A lock up / etc during hot load is also disruptive, of course. But when you can push code without having to stop anything, with limited impact on users, it makes it easier and faster to do updates. You can use whatever rollout pattern you like to contain risk too; same as you would for an upgrade with restarts.
For us, we have servers with hundreds of thousands or millions of tcp connections from mobile clients. Restarting a server would make all those clients have to reconnect and connecting is expensive. Restarting all the servers would result in many clients reconnecting several times. It was better to avoid it when possible.