canonical / kafka-k8s-operator

Kafka K8s operator
Apache License 2.0
7 stars 11 forks source link

Error raised when removing `trusted-certificate` relation #86

Closed deusebio closed 7 months ago

deusebio commented 7 months ago

Steps to reproduce

  1. Deploy this bundle file failing-bundle.txt
  2. juju relate kafka-k8s:trusted-certificate mtls
  3. juju remove-relation kafka-k8s mtls

Expected behavior

The relation is removed and the certificate is remove from the trust-store of the broker

Actual behavior

An error is raised on relation removal:

unit-kafka-k8s-0: 00:00:06 WARNING unit.kafka-k8s/0.juju-log trusted-certificate:12: keytool error: java.lang.Exception: Alias <mtls-12> does not exist
java.lang.Exception: Alias <mtls-12> does not exist
        at java.base/sun.security.tools.keytool.Main.doDeleteEntry(Main.java:1677)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1164)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:423)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:416)

unit-kafka-k8s-0: 00:00:06 ERROR unit.kafka-k8s/0.juju-log trusted-certificate:12: Uncaught exception while in charm code:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/./src/charm.py", line 320, in <module>
    main(KafkaCharm)
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/venv/ops/main.py", line 456, in main
    _emit_charm_event(charm, dispatcher.event_name)
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/venv/ops/main.py", line 144, in _emit_charm_event
    event_to_emit.emit(*args, **kwargs)
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/venv/ops/framework.py", line 351, in emit
    framework._emit(event)
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/venv/ops/framework.py", line 853, in _emit
    self._reemit(event_path)
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/venv/ops/framework.py", line 943, in _reemit
    custom_handler(event)
  File "/var/lib/juju/agents/unit-kafka-k8s-0/charm/src/events/tls.py", line 231, in _trusted_relation_broken
    all_relations.remove(event.relation)
ValueError: list.remove(x): x not in list

Versions

Operating system: Ubuntu 22.04

Juju CLI: 3.1.7

Juju agent: 3.1.7

Charm revision: 49

microk8s: 1.29-strict/stable

github-actions[bot] commented 7 months ago

https://warthogs.atlassian.net/browse/DPE-3630

deusebio commented 7 months ago

The same problem appears also on the trusted-ca relation. The procedure above can be slightly changed to relate on the trusted-ca endpoint instead, with the same outcome