I can reproduce I believe: $ Jun 17 12:25:22 maas maas.calls: [INFO] Starting task 'write_full_dns_config' with args: () {'zones': [, ], 'callback': provisioningserver.tasks.rndc_command([u'reload'], False), 'upstream_dns': u'8.8.8.8', 'trusted_networks': u'192.168.2.0/24;'} Jun 17 12:25:22 maas maas.calls: [INFO] Starting task 'rndc_command' with args: ([u'reload'], False) {} Jun 17 12:25:22 maas maas.tasks: [ERROR] rndc_command failed: Command `rndc -c /etc/bind/maas/rndc.conf.maas reload` returned non-zero exit status 1:#012rndc: connection to remote host closed#012This may indicate that#012* the remote server is using an older version of the command protocol,#012* this host is not authorized to connect,#012* the clocks are not synchronized, or#012* the key is invalid. Jun 17 12:25:22 maas maas.tasks: [ERROR] rndc_command: Command `rndc -c /etc/bind/maas/rndc.conf.maas reload` returned non-zero exit status 1:#012rndc: connection to remote host closed#012This may indicate that#012* the remote server is using an older version of the command protocol,#012* this host is not authorized to connect,#012* the clocks are not synchronized, or#012* the key is invalid. Jun 17 12:25:22 maas maas.tasks: [ERROR] write_full_dns_config: Command `rndc -c /etc/bind/maas/rndc.conf.maas reload` returned non-zero exit status 1:#012rndc: connection to remote host closed#012This may indicate that#012* the remote server is using an older version of the command protocol,#012* this host is not authorized to connect,#012* the clocks are not synchronized, or#012* the key is invalid. ERROR 2015-06-17 12:25:22,493 django.request Internal Server Error: /MAAS/clusters/6e051520-ed1c-4d2a-a1df-7ea93a35e175/interfaces/eth0/edit/ Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 112, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view return view_func(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 69, in view return self.dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 87, in dispatch return handler(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/edit.py", line 228, in post return super(BaseUpdateView, self).post(request, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/views/generic/edit.py", line 171, in post return self.form_valid(form) File "/usr/lib/python2.7/dist-packages/maasserver/views/clusters.py", line 224, in form_valid return super(ClusterInterfaceEdit, self).form_valid(form) File "/usr/lib/python2.7/dist-packages/django/views/generic/edit.py", line 147, in form_valid self.object = form.save() File "/usr/lib/python2.7/dist-packages/maasserver/forms.py", line 1510, in save interface = super(NodeGroupInterfaceForm, self).save(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/forms/models.py", line 446, in save construct=False) File "/usr/lib/python2.7/dist-packages/django/forms/models.py", line 99, in save_instance instance.save() File "/usr/lib/python2.7/dist-packages/maasserver/models/cleansave.py", line 38, in save return super(CleanSave, self).save(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/models/timestampedmodel.py", line 55, in save return super(TimestampedModel, self).save(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 545, in save force_update=force_update, update_fields=update_fields) File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 582, in save_base update_fields=update_fields, raw=raw, using=using) File "/usr/lib/python2.7/dist-packages/django/dispatch/dispatcher.py", line 185, in send response = receiver(signal=self, sender=sender, **named) File "/usr/lib/python2.7/dist-packages/maasserver/dns/connect.py", line 61, in dns_post_save_NodeGroupInterface write_full_dns_config() File "/usr/lib/python2.7/dist-packages/maasserver/utils/__init__.py", line 193, in call_with_lock return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/dns/config.py", line 142, in write_full_dns_config trusted_networks=get_trusted_networks()) File "/usr/lib/python2.7/dist-packages/celery/app/task.py", line 452, in delay return self.apply_async(args, kwargs) File "/usr/lib/python2.7/dist-packages/celery/app/task.py", line 546, in apply_async link=link, link_error=link_error, **options) File "/usr/lib/python2.7/dist-packages/celery/app/task.py", line 727, in apply request=request, propagate=throw) File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 315, in eager_trace_task uuid, args, kwargs, request) File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 218, in trace_task R = retval = fun(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/logger/utils.py", line 42, in wrapper func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 52, in wrapper func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 116, in write_full_dns_config callback.delay() File "/usr/lib/python2.7/dist-packages/celery/canvas.py", line 167, in delay return self.apply_async(partial_args, partial_kwargs) File "/usr/lib/python2.7/dist-packages/celery/canvas.py", line 237, in apply_async return _apply(args, kwargs, **options) File "/usr/lib/python2.7/dist-packages/celery/app/task.py", line 546, in apply_async link=link, link_error=link_error, **options) File "/usr/lib/python2.7/dist-packages/celery/app/task.py", line 727, in apply request=request, propagate=throw) File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 315, in eager_trace_task uuid, args, kwargs, request) File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 218, in trace_task R = retval = fun(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/logger/utils.py", line 42, in wrapper func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 52, in wrapper func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 83, in rndc_command execute_rndc_command(arguments) File "/usr/lib/python2.7/dist-packages/provisioningserver/dns/config.py", line 170, in execute_rndc_command call_and_check(rndc_cmd) File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/shell.py", line 146, in call_and_check raise ExternalProcessError(process.returncode, command, output=stderr) ExternalProcessError: Command `rndc -c /etc/bind/maas/rndc.conf.maas reload` returned non-zero exit status 1: rndc: connection to remote host closed This may indicate that * the remote server is using an older version of the command protocol, * this host is not authorized to connect, * the clocks are not synchronized, or * the key is invalid. $ ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: p4p1: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:1b:c5:09:24:97 brd ff:ff:ff:ff:ff:ff inet 192.168.2.1/24 brd 192.168.2.255 scope global p4p1 valid_lft forever preferred_lft forever inet6 fe80::21b:c5ff:fe09:2497/64 scope link valid_lft forever preferred_lft forever 3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:80:8e:8a:8e:38 brd ff:ff:ff:ff:ff:ff inet 10.19.83.182/24 brd 10.19.83.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::280:8eff:fe8a:8e38/64 scope link valid_lft forever preferred_lft forever $ cat /etc/maas/maas_cluster.conf /etc/maas/maas_local_settings.py /etc/maas/pserv.yaml cat: /etc/maas/maas_cluster.conf: Permission denied cat: /etc/maas/maas_local_settings.py: Permission denied ## ## Provisioning Server (pserv) configuration. ## ## Where to log. This log can be rotated by sending SIGUSR1 to the ## running server. # # logfile: "pserv.log" logfile: "/var/log/maas/pserv.log" ## TFTP configuration. # tftp: # The "root" setting has been replaced by "resource_root". The old setting # is used one final time when upgrading a pre-14.04 cluster controller to a # 14.04 version. After that upgrade, it can be removed. # # resource_root: /var/lib/maas/boot-resources/current/ # port: 69 ## The URL to be contacted to generate PXE configurations. # generator: http://localhost/MAAS/api/1.0/pxeconfig/ generator: http://localhost/MAAS/api/1.0/pxeconfig/