-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Hello!
I have a juju environment that consumes a DB as a SAAS. In there, I deployed a pgbouncer and a data-integrator. It was working well last week, and this week, when I logged in and ran juju status, pgbouncer and data-integrator were in an error state due to "secret-changed".
Specifically, this is the error I'm getting in the data integrator: ops.model.ModelError: ERROR getting latest secret revision: state changing too quickly; try again soon. (full traceback below)
I tried rebooting the unit to see if it gets the right secret, but it didn't work. I also tried running juju resolved to re-trigger the unit, but it didn’t work.
Versions
Operating system: Ubuntu 22.04.5 LTS
Juju CLI: 3.6.8-ubuntu-amd64
Juju agent: 3.6.14
Charm revision:
- data-integrator: 179
- pgbouncer: 877
Log output
Traceback:
unit-data-integrator-8: 12:41:40 INFO juju.worker.uniter awaiting error resolution for "secret-changed" hook
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log ops 2.22.0 up and running.
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log Emitting Juju event secret_changed.
unit-data-integrator-8: 12:41:40 INFO unit.data-integrator/8.juju-log authentication updated
unit-data-integrator-8: 12:41:40 INFO unit.data-integrator/8.juju-log etcd_ready updated
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log Emitting custom event <EtcdReadyEvent app='pgbouncer' unit='pgbouncer/7' on <ops.model.Relation postgresql:40> via IntegratorCharm/EtcdRequires[etcd]/on/etcd_ready[9059]>.
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log etcd ready received
unit-data-integrator-8: 12:41:41 ERROR unit.data-integrator/8.juju-log Uncaught exception while in charm code:
Traceback (most recent call last):
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 3422, in _run
result = subprocess.run(args, **kwargs) # type: ignore
File "/usr/lib/python3.10/subprocess.py", line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('/var/lib/juju/tools/unit-data-integrator-8/secret-get', '--label', 'postgresql.40.user.secret', '--refresh', '--format=json')' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 525, in <module>
main(IntegratorCharm)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/__init__.py", line 356, in __call__
return _main.main(charm_class=charm_class, use_juju_for_storage=use_juju_for_storage)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 475, in main
manager.run()
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 459, in run
self._emit()
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 403, in _emit
self._emit_charm_event(self.dispatcher.event_name)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 438, in _emit_charm_event
event_to_emit.emit(*args, **kwargs)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 351, in emit
framework._emit(event)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 924, in _emit
self._reemit(event_path)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 1030, in _reemit
custom_handler(event)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 4201, in _on_secret_changed_event
getattr(self.on, "etcd_ready").emit(relation, app=relation.app, unit=remote_unit)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 351, in emit
framework._emit(event)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 924, in _emit
self._reemit(event_path)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 1030, in _reemit
custom_handler(event)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 306, in _on_etcd_ready
self._on_config_changed(event)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 184, in _on_config_changed
self.unit.status = self.get_status()
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 133, in get_status
self.is_database_related,
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 443, in is_database_related
possible_relations = [
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 444, in <listcomp>
self._check_for_credentials(database_requirer)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 453, in _check_for_credentials
if requirer.fetch_relation_field(
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1567, in fetch_relation_field
self.fetch_relation_data([relation_id], [field], relation_name)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1559, in fetch_relation_data
data[relation.id] = self._fetch_specific_relation_data(relation, fields)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1068, in _fetch_specific_relation_data
return self._fetch_relation_data_with_secrets(
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1452, in _fetch_relation_data_with_secrets
result, normal_fields = self._process_secret_fields(
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1396, in _process_secret_fields
if group_result := operation(relation, group, secret_fields, *args, **kwargs):
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1331, in _get_group_secret_contents
secret_data := secret.get_content()
File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 752, in get_content
self._secret_content = self.meta.get_content(refresh=True)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 1462, in get_content
self._content = self._backend.secret_get(id=self.id, label=self.label, refresh=refresh)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 3808, in secret_get
result = self._run('secret-get', *args, return_output=True, use_json=True)
File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 3424, in _run
raise ModelError(e.stderr) from e
ops.model.ModelError: ERROR getting latest secret revision: state changing too quickly; try again soon
Additional context
These are my juju relations:
Integration provider Requirer Interface Type Message
data-integrator:data-integrator-peers data-integrator:data-integrator-peers data-integrator-peers peer
pgbouncer:database data-integrator:postgresql postgresql_client subordinate
pgbouncer:pgb-peers pgbouncer:pgb-peers pgb_peers peer
pgbouncer:upgrade pgbouncer:upgrade upgrade peer
postgresql:database pgbouncer:backend-database postgresql_client regular
$ juju show-secret 04318833-3d82-4131-89ae-36b2fe3d4cbe/d5sgggeh3aneiqh6kubg --revisions
d5sgggeh3aneiqh6kubg:
revision: 533
owner: pgbouncer
label: database.40.user.secret
created: 2026-01-27T18:47:30Z
updated: 2026-01-30T12:50:35Z
revisions:
- revision: 526
backend: internal
created: 2026-01-30T12:33:10Z
updated: 2026-01-30T12:33:10Z
- revision: 532
backend: internal
created: 2026-01-30T12:50:24Z
updated: 2026-01-30T12:50:24Z
access:
- target: application-data-integrator
scope: relation-data-integrator.postgresql#pgbouncer.database
role: view