Device: GL-MT6000 (Flint 2)
Firmware: 4.9.1 (release1, build 0804) → 4.11 → rolled back to 4.9.1
AdGuard Home: 0.107.73 (bundled)
What happened
I upgraded from 4.9.1 to 4.11 with settings kept. AdGuard Home stopped working on 4.11, so I rolled back to 4.9.1. After the rollback AdGuard Home still wouldn't start. The AdGuard page in the admin panel showed 0 queries, and DNS was down for every device on the network, since the router redirects all port 53 traffic to AdGuard.
The error
AdGuard Home crash-loops on startup. logread shows:
[fatal] dnsServer.Prepare: preparing ipset settings: open /var/run/AdGuardHome/ipset.conf: no such file or directory
procd: Instance adguardhome::instance1 s in a crash loop 6 crashes, 0 seconds since last crash
The AdGuard config has always contained:
ipset_file: /var/run/AdGuardHome/ipset.conf
/var/run is in RAM and cleared on every boot. Before the upgrade, something created this file at boot and AdGuard started fine, surviving several reboots over weeks. After the 4.11 round-trip, nothing creates it and AdGuard fatals every boot.
What I checked
- The AdGuard config itself is intact (schema 33, all rules and clients present)
- My pre-upgrade backup contains the identical
ipset_filesetting and nothing that creates the file, so restoring the backup doesn't fix it - On 4.9.1, nothing references
/var/run/AdGuardHome/apart from the AdGuard binary itself./etc/init.d/adguardhomedoesn't create it, and neither doesdomain_ipset_config.lua(which writes/var/run/dnsmasq/via_domain) - No leftover 4.11 files appear to be overriding the firmware in the overlay
- Side effect: the rollback also removed
/etc/AdGuardHome/backup/
Workaround
An empty file is enough. Domain-based VPN policy routing still works, because the domain→ipset tagging is handled by dnsmasq's via_domain, not this file. I added this to /etc/rc.local, before exit 0. rc.local runs from S95done, before S99adguardhome:
# AdGuard Home aborts at startup if this file is missing; /var/run is wiped each boot
mkdir -p /var/run/AdGuardHome
touch /var/run/AdGuardHome/ipset.conf
After a full reboot, AdGuard started on its own with no crashes, DNS and blocking worked, and VPN domain policies were routing correctly.
Questions for GL.iNet
- What is supposed to create
/var/run/AdGuardHome/ipset.confat boot on 4.9.1? - Is this a known issue with 4.11's AdGuard integration, and will 4.11 or later handle it?
- Could the init script create the file (or AdGuard treat a missing
ipset_fileas empty) rather than failing fatally? A missing optional file currently takes DNS down for the entire network.