• v1.6.6 fdf7360f70

    hclaude released this 2026-10-20 01:00:05 +00:00 | 4 commits to master since this release

    LXC templates 1.6.6 (ifupdown2 dhcp-wait boot hang fix)

    Artifacts (Forgejo generic registry):

    • debian-13-trixie-ECS01_13-1.6.6_amd64.tar.zst (171 MB)
    • devuan-6-excalibur-ECS01_6-1.6.6_amd64.tar.zst (166 MB)
    • devuan-6-excalibur_6-1.6.6_amd64.tar.zst (91 MB)
    • ubuntu-26.04-resolute-ECS01_26.04-1.6.6_amd64.tar.zst (140 MB)

    Changes

    1.6.6 (+ qemu 0.2.8: boot hang on every ifupdown2 image since the
    ifupdown2 switch (1.6.5 / 0.2.6), found on a real PVE container
    (CT "pega", ip=dhcp,ip6=auto): console came up, ssh never did.
    DHCP-1: PVE writes "iface eth0 inet dhcp" + "iface eth0 inet6
    auto". ifupdown2 3.0.0 rejects method "auto" (error line, then
    carries on), squashes all stanzas of an interface into ONE
    object whose addr_method is the FIRST stanza's but whose
    families are inet+inet6, and therefore starts BOTH dhclient and
    dhclient -6. Its dhcp addon waits for each client to daemonize
    (policy dhcp-wait=yes, no -nw); ISC dhclient -6 never
    daemonizes without a DHCPv6 server, so ifup -a never returns,
    the networking service never finishes and nothing after it
    starts (cron, ecs-firstboot, nullmailer, ssh). Same on Debian
    13 (ifupdown2's networking.service is Type=oneshot with no
    start timeout) and on the Devuan/Debian VM images. 1.6.4
    (ifupdown, no dhclient) failed fast instead. Fix: ship
    src/ecs-ifupdown2-policy.json as
    /etc/network/ifupdown2/policy.d/ecs.json (dhcp-wait: no ->
    dhclient -nw) on every ifupdown2 image (both builders, Devuan +
    Debian; Ubuntu has no ifupdown2). Verified in a namespace boot
    rig: pega's exact interfaces boot to a listening sshd in ~45 s.
    Residual: a background dhclient -6 -nw keeps soliciting on
    inet dhcp + inet6 auto (no DHCPv6 on ECS segments; SLAAC via the
    sysctl policy is unaffected).
    SLAAC-2: the ecs-slaac if-up.d hook assumed ifupdown's per-
    family calls (ADDRFAM=inet6, METHOD=static, IF_ADDRESS = the v6
    address). ifupdown2 calls hooks once per interface with
    ADDRFAM="inet,inet6", METHOD = first stanza's and IF_* = the
    IPv4 stanza's, so the "static preferred" branch (accept_ra 2,
    static address as default-route source) never ran on 1.6.5.
    The hook now also finds a static v6 address on the live
    interface (global + permanent, i.e. not SLAAC/dynamic) and the
    non-RA default route, waits for DAD (<= 3 s) before pinning the
    source, and serves both ifupdown and ifupdown2.
    DHCP-2 (known, NOT fixed — ifupdown2 squash semantics): with
    "inet dhcp" as the first stanza, a following "inet6 static"
    stanza is NOT applied (only its default route is): ifupdown2
    keeps one addr_method per interface, so PVE ip=dhcp + ip6=
    yields no static v6 on 1.6.5+. Use a static ip= (or ip6=auto)
    on ifupdown2 images when a static v6 is wanted.
    TEST-1: test-devuan-template.sh section D demanded isc-dhcp-
    client be absent — a FAIL on every 1.6.5 ifupdown2 image; now
    only enforced where ifupdown + dhcpcd are used. Section C
    checks the DHCP-1 policy file; the dhcpcd ipv4only check is
    skipped where dhcpcd is not installed; the per-interface sysfs
    loop skips plain files (bonding_masters on hosts with bonds).
    Refs: #46

    SHA256SUMS

    a3195bc40948e947819237f9b594794984e190b047764c95c155773d7a8760eb  debian-13-trixie-ECS01_13-1.6.6_amd64.tar.zst
    db6c685a85b15959cda2f4719dbebc8a607e195d5acffda256f13bd675465695  devuan-6-excalibur-ECS01_6-1.6.6_amd64.tar.zst
    f1b4fe30bd875bf2181645ea06c215d73deef49ac4f7df9d21efbcdd3558f5a3  devuan-6-excalibur_6-1.6.6_amd64.tar.zst
    87aa971371c0076431ee6ec7f38bad65da39cf35696b524db300ab517d379cc9  ubuntu-26.04-resolute-ECS01_26.04-1.6.6_amd64.tar.zst
    ea145530a5bae4e223c553d9c1dd7b42d2405a7d2ac1826e2278b1eed7182339  debian-13-trixie-ECS01_13-1.6.6_amd64.manifest.txt
    2bb13b139036eee339f767082e72a58636091040d169b3a75ee386bce7acad11  devuan-6-excalibur-ECS01_6-1.6.6_amd64.manifest.txt
    b371e129a0af7a8ff11db10444eaa250c3cfcc7d7857ebea7591c439f59ddfb0  devuan-6-excalibur_6-1.6.6_amd64.manifest.txt
    51044e55adfe3997334ee5367cad09b067a709268bdc637944639f3691c09aaa  ubuntu-26.04-resolute-ECS01_26.04-1.6.6_amd64.manifest.txt
    

    Pull

    forgejo-curl -sLO https://git.cloudoffice.co.za/api/packages/ECS-Public-Infra/generic/lxc-templates/1.6.6/<file>     # or .../latest/<file>
    
    Downloads