The mint finds the bus on the hub

The map of who is where on the private network lists the machines placed around
the hub, not the hub — and the control node is the hub, and runs the new bus.
Found on the first live run: refused for having no address. The address every
machine already dials the current bus at is the same machine, so that host with
the new port is what they are told.
This commit is contained in:
2026-09-28 00:34:17 +02:00
parent ad2eed2f71
commit 4b209d944d
+17 -4
View File
@@ -243,11 +243,24 @@ func rolloutMint(ctx context.Context) error {
if err != nil { if err != nil {
return err return err
} }
if onNetwork[busNode] == "" { busHost := onNetwork[busNode]
return fmt.Errorf("%s runs the new bus and has no address on the private network, so no machine "+ if busHost == "" {
"could be told where it is", busNode) // **The hub is not in that map.** The machine that took over the tunnel is where the current
// bus already answers, and every machine dials it at the address the mesh handed them — so
// when the new bus runs on the same machine, that address is the one to tell them, with the
// new port. Found live: the control node is the hub, and the map lists the machines placed
// around it.
host := strings.TrimSpace(broker.BareAddress(known.Address))
if i := strings.LastIndex(host, ":"); i > 0 && !strings.Contains(host[i:], "]") {
host = host[:i]
} }
busAddress := onNetwork[busNode] + ":4222" if host == "" {
return fmt.Errorf("%s runs the new bus and has no address on the private network, and the "+
"current bus's address is unknown too, so no machine could be told where it is", busNode)
}
busHost = host
}
busAddress := busHost + ":4222"
records, err := inv.BusRecords(ctx) records, err := inv.BusRecords(ctx)
if err != nil { if err != nil {