DNS stopped working and trying to change DNS via Foris ends up with an internal error

Hi. On 5th of July my DNS stopped working. I have original blue Turris, foris version 100.5.1, Turris OS version 3.11.23. I just returned from vacation. The router was restarted but that did not help. In Notifications I see only messages regarding failed updates due to unresolved hostname.

In Foris / DNS I have the following setup:

Use forwarding: unchecked
Disable DNSSEC: unchecked
Enable DHCP clients in DNS: checked

I tried to enable “Use forwarding” option but clicking on Save button ends up with an error message (“An unexpected error has occurred”) and both Foris and LuCI stop working and the router has to be restarted.

I’d like to know how to fix this issue as our home network is barely usable at the moment and everyone rightly complains. I suspect a system update caused this but I don’t know how to check this nor how to find out what really got broken and how to fix it. Please help. Thanks.

Here’s the error message:

Remote Exception: Internal error [‘uci’, ‘-c’, ‘/etc/config/’, ‘-p’, ‘/tmp/.uci-foris-controller’, ‘commit’, ‘resolver’]: command failed (b’uci: I/O error\n’)(’<class ‘foris_controller.exceptions.UciException’>’)
Remote request

{“module”: “dns”, “action”: “update_settings”, “kind”: “request”, “data”: {“dnssec_enabled”: true, “forwarding_enabled”: true, “dns_from_dhcp_enabled”: true, “dns_from_dhcp_domain”: “lan”, “forwarder”: “00_odvr-cznic”}}

Stack trace

Traceback (most recent call last):
File “/usr/lib/python3.6/site-packages/foris_controller/message_router.py”, line 117, in process_message
data = module_instance.perform_action(message[“action”], message.get(“data”, {}))
File “/usr/lib/python3.6/site-packages/foris_controller/module_base.py”, line 61, in perform_action
res = action_function(data)
File “/usr/lib/python3.6/site-packages/foris_controller_modules/dns/init.py”, line 45, in action_update_settings
res = self.handler.update_settings(**data)
File “/usr/lib/python3.6/site-packages/foris_controller/utils.py”, line 113, in inner
res = func(*args, **kwargs)
File “/usr/lib/python3.6/site-packages/foris_controller_modules/dns/handlers/openwrt.py”, line 72, in update_settings
dns_from_dhcp_domain,
File “/usr/lib/python3.6/site-packages/foris_controller_backends/dns/init.py”, line 208, in update_settings
backend.set_option(“resolver”, “common”, “forward_custom”, forwarder)
File “/usr/lib/python3.6/site-packages/foris_controller_backends/uci/init.py”, line 144, in exit
self.commit()
File “/usr/lib/python3.6/site-packages/foris_controller_backends/uci/init.py”, line 246, in commit
self._run_uci_command(“commit”, config)
File “/usr/lib/python3.6/site-packages/foris_controller_backends/uci/init.py”, line 173, in _run_uci_command
raise UciException(cmdline_args, stderr)
foris_controller.exceptions.UciException: [‘uci’, ‘-c’, ‘/etc/config/’, ‘-p’, ‘/tmp/.uci-foris-controller’, ‘commit’, ‘resolver’]: command failed (b’uci: I/O error\n’)

Hi @gamato

I/O error doesn’t look good.

Did you encounter this error every time you tried to change DNS settings or does it happen just from time to time?

Could you please check whether the router is operating normally - apart from the DNS issue?
I mean try to change some other configuration in Foris or Luci, install some package in Foris, and see if it works or throws some kind of error.

It happens every time and it happens with other settings too. I just tried to change DHCP lease time via Foris and it failed with I/O error too. I tried to change a few things via Luci and nothing happened – it always looks like it’s doing something but eventually no change happens. Apart from that the router sort of works – devices on internal network are reachable and usable when using IP addresses and the same is true for external network and internet services are usable if I don’t use Turris for DNS resolving (but manually specifying public DNS servers on each device is a major PITA). Thanks.

I’m afraid that in that case there might be something wrong with the internal storage on Turris.

Nevertheless it looks like you have already contacted our tech support with the same issue, so unless that was someone else, I’d try to resolve this issue with tech support.

1 Like