I was observing following problem when running adblock-fast
root@OpenWrt:/etc/init.d# /etc/init.d/adblock-fast start
[INIT] Force-reloading adblock-fast 1.2.0-r22...
[ DL ] Blocked List: CERT Polska - Dangerous Websites (domains) [✓]
[PROC] Sorting combined block-list [✓]
[PROC] Optimizing combined block-list [✓]
[PROC] Removing allowed domains from combined block-list [✓]
[PROC] Formatting combined block-list file [✓]
[PROC] Explicitly allowing domains in dnsmasq.servers [✓]
[PROC] Setting up dnsmasq.servers file [✓]
[PROC] Removing temporary files [✓]
[DNSM] Updating dnsmasq configuration [✓]
[DNSM] Testing dnsmasq.servers configuration [✓]
[DNSM] Sanity check for dnsmasq.servers TLDs [✓]
[DNSM] Sanity check for dnsmasq.servers leading dots [✓]
[DNSM] Restarting dnsmasq [✓]
[DNSM] Probing heartbeat.melmac.ca for 10 seconds [w][w][w][w][w][w][w][w][w][w][✗]
[DNSM] Resetting dnsmasq [✓]
[DNSM] Restarting dnsmasq [✓]
adblock-fast 1.2.0-r22 failed to start: Testing resolver on heartbeat.melmac.ca.
[ERROR] Heartbeat domain is not accessible after resolver restart!
[ERROR] Failed to create block-list or restart DNS resolver!
[TRIG] Setting trigger for wan [✓]
turns out the problem was that I did not have nslookup which is used in /etc/init.d/adblock-fast without checking if nslookup is present or not. I solved it on my end by building busybox with nslookup enabled.
I don't quite know what would be proper way to handle the case. But a warning either in luci or in the console output would make it easier to troubleshoot that the problem was not with DNS but rather with missing nslookup.




