Skip to content

metadata.yaml doesn't set a limit on database relations #336

Description

@amc94

Bug Description

it's possible to relate multiple databases to the databases endpoint, leading to hook failed: storage-attached

To Reproduce

deploy with mysql-router and mysql and relate both to the database endpoint

Environment

https://test-observer.canonical.com/#/charms/275993?testExecutionId=287586&testResultId=7944781

Relevant log output

2025-11-18T16:04:19.264Z [container-agent] 2025-11-18 16:04:19 DEBUG jujuc server.go:302 running hook tool "juju-log" for target/0-uploads-storage-attached-7ce6e585ee5de350da0010ccd0fe6552
2025-11-18T16:04:19.264Z [container-agent] 2025-11-18 16:04:19 ERROR juju-log Uncaught exception while in charm code:
2025-11-18T16:04:19.264Z [container-agent] Traceback (most recent call last):
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/./src/charm.py", line 1580, in <module>
2025-11-18T16:04:19.264Z [container-agent]     main(WordpressCharm)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/main.py", line 39, in main
2025-11-18T16:04:19.264Z [container-agent]     return _main.main(charm_class=charm_class, use_juju_for_storage=use_juju_for_storage)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/_main.py", line 504, in main
2025-11-18T16:04:19.264Z [container-agent]     manager.run()
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/_main.py", line 488, in run
2025-11-18T16:04:19.264Z [container-agent]     self._emit()
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/_main.py", line 423, in _emit
2025-11-18T16:04:19.264Z [container-agent]     self._emit_charm_event(self.dispatcher.event_name)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/_main.py", line 467, in _emit_charm_event
2025-11-18T16:04:19.264Z [container-agent]     event_to_emit.emit(*args, **kwargs)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/framework.py", line 351, in emit
2025-11-18T16:04:19.264Z [container-agent]     framework._emit(event)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/framework.py", line 924, in _emit
2025-11-18T16:04:19.264Z [container-agent]     self._reemit(event_path)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/framework.py", line 1036, in _reemit
2025-11-18T16:04:19.264Z [container-agent]     custom_handler(event)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/./src/charm.py", line 1565, in _reconciliation
2025-11-18T16:04:19.264Z [container-agent]     self._core_reconciliation()
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/./src/charm.py", line 924, in _core_reconciliation
2025-11-18T16:04:19.264Z [container-agent]     if not self._current_effective_db_info:
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/./src/charm.py", line 675, in _current_effective_db_info
2025-11-18T16:04:19.264Z [container-agent]     relation = self.model.get_relation(self._DATABASE_RELATION_NAME)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/model.py", line 277, in get_relation
2025-11-18T16:04:19.264Z [container-agent]     return self.relations._get_unique(relation_name, relation_id)
2025-11-18T16:04:19.264Z [container-agent]   File "/var/lib/juju/agents/unit-target-0/charm/venv/ops/model.py", line 1025, in _get_unique
2025-11-18T16:04:19.264Z [container-agent]     raise TooManyRelatedAppsError(relation_name, num_related, 1)
2025-11-18T16:04:19.264Z [container-agent] ops.model.TooManyRelatedAppsError: Too many remote applications on database (2 > 1)

Additional context

Part of the charm qa testing effort

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions