scripts/iso R-60 fix: judge a sweep candidate on the lease's OWN routing — flush vmbr0 before the bounded dhclient
Live drill finding (nested leg, 2026-07-22): the installer's no-DHCP fallback bakes not just the 192.168.100.2 static address but a DEFAULT ROUTE via 192.168.100.1, and dhclient-script never replaces an existing default route — so the sweep's hub probe rode the dead gateway and failed even though the candidate's lease had landed, and the gate oscillated (lease -> probe fail -> byte-identical restore -> screen). The candidate probe now flushes vmbr0's addresses+routes after the re-point, letting the lease install its own; the restore path and each next candidate re-apply configured state via ifreload. Validated live by hot-patching the drill box: heal in 33s from restart — self-heal log, inet-dhcp persist, .felhom-bak, hub registration + pairing banner. Full virgin-ISO drill follows. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UuFPHmHNrCJj1VhY6QdDMU
This commit is contained in:
@@ -197,6 +197,13 @@ sweep_nics() {
|
||||
render_candidate_interfaces "$n" > "${INTERFACES_FILE}.felhom-tmp" \
|
||||
&& mv "${INTERFACES_FILE}.felhom-tmp" "$INTERFACES_FILE"
|
||||
ifreload -a 2>/dev/null
|
||||
# Drill finding (2026-07-22, nested leg): the installer's fallback bakes a DEFAULT ROUTE via
|
||||
# 192.168.100.1, and dhclient-script does not replace an existing default route — the probe
|
||||
# then rides the dead gateway and fails even though the lease landed. A candidate must be
|
||||
# judged on the lease's OWN addressing/routing, so clear vmbr0 first; the restore path (and
|
||||
# any next candidate) re-applies the configured state via ifreload.
|
||||
ip addr flush dev vmbr0 2>/dev/null
|
||||
ip route flush dev vmbr0 2>/dev/null
|
||||
timeout "$SWEEP_DHCP_TIMEOUT" dhclient -1 vmbr0 2>/dev/null
|
||||
local drc=$?
|
||||
if [[ $drc -eq 0 ]] && hub_reachable; then
|
||||
|
||||
Reference in New Issue
Block a user