Traceback with `AttributeError: 'NoneType' object has no attribute 'data'` from interface_tls_certificates/requires.py

Bug #2037111 reported by George Kraft
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Kubernetes API Load Balancer
Fix Released
Low
Adam Dyess
Kubernetes Control Plane Charm
Fix Released
Low
Adam Dyess

Bug Description

On new deploys, the charm logs a traceback:

Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-kubeapi-load-balancer-0/charm/venv/charms/reconciler.py", line 34, in reconcile
    result = self.reconcile_function(event)
  File "/var/lib/juju/agents/unit-kubeapi-load-balancer-0/charm/./src/charm.py", line 329, in _reconcile
    self._write_certificates()
  File "/var/lib/juju/agents/unit-kubeapi-load-balancer-0/charm/./src/charm.py", line 381, in _write_certificates
    cert = self.certificates.server_certs_map.get(common_name)
  File "/var/lib/juju/agents/unit-kubeapi-load-balancer-0/charm/venv/ops/interface_tls_certificates/requires.py", line 178, in server_certs_map
    return {cert.common_name: cert for cert in self.server_certs}
  File "/var/lib/juju/agents/unit-kubeapi-load-balancer-0/charm/venv/ops/interface_tls_certificates/requires.py", line 153, in server_certs
    common_name = self.relation.data[self.model.unit].get("common_name")
AttributeError: 'NoneType' object has no attribute 'data'

This happens when the charm is first coming up, before the certificates relation has been established. The charm catches the error and enters Blocked status with the message: "Missing required certificates". The error resolves itself once the certificates relation is established.

Revision history for this message
George Kraft (cynerva) wrote :

Also affects kubernetes-control-plane from the `ops` branch. I recommend a fix in interface-tls-certificates to handle it more gracefully when `self.relation` is None.

Changed in charm-kubeapi-load-balancer:
importance: Undecided → Low
Changed in charm-kubernetes-master:
importance: Undecided → Low
Changed in charm-kubeapi-load-balancer:
status: New → Triaged
Changed in charm-kubernetes-master:
status: New → Triaged
Revision history for this message
Adam Dyess (addyess) wrote :
Changed in charm-kubeapi-load-balancer:
milestone: none → 1.29
Changed in charm-kubernetes-master:
milestone: none → 1.29
Changed in charm-kubeapi-load-balancer:
status: Triaged → In Progress
Changed in charm-kubernetes-master:
status: Triaged → In Progress
Changed in charm-kubeapi-load-balancer:
assignee: nobody → Adam Dyess (addyess)
Changed in charm-kubernetes-master:
assignee: nobody → Adam Dyess (addyess)
Adam Dyess (addyess)
Changed in charm-kubeapi-load-balancer:
status: In Progress → Fix Committed
Changed in charm-kubernetes-master:
status: In Progress → Fix Committed
Adam Dyess (addyess)
tags: added: backport-needed
Changed in charm-kubeapi-load-balancer:
milestone: 1.29 → 1.28+ck2
Changed in charm-kubernetes-master:
milestone: 1.29 → 1.28+ck2
Adam Dyess (addyess)
tags: removed: backport-needed
Adam Dyess (addyess)
Changed in charm-kubeapi-load-balancer:
milestone: 1.28+ck2 → 1.29
Changed in charm-kubernetes-master:
milestone: 1.28+ck2 → 1.29
Changed in charm-kubeapi-load-balancer:
status: Fix Committed → Fix Released
Changed in charm-kubernetes-master:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.