Comment 1 for bug 1977798

Revision history for this message
John A Meinel (jameinel) wrote :

So I investigated this by just creating a charm that has very simple properties:
class Ubuntu(charm.CharmBase):
    """The simplest of charms that just gets Ubuntu up and running.
    """

    def __init__(self, framework, *args):
        super().__init__(framework, *args)

...
        self.framework.observe(self.on.update_status, self._on_update_status)
...
        self.framework.observe(self.on.leader_settings_changed, self._on_settings_changed)
        self.framework.observe(self.on.leader_elected, self._on_elected)
...
    def _on_update_status(self, event):
        load1min, load5min, load15min = os.getloadavg()
        self.model.unit.status = model.ActiveStatus(
            'load: {:.2f} {:.2f} {:.2f}'.format(load1min, load5min, load15min))
        sub = subprocess.run('leader-get', capture_output=True)
        logging.info('update-status for %s, is-leader: %s:\nout: %r\nerr: %r',
                self.unit.name, self.unit.is_leader(), sub.stdout, sub.stderr)

...
    def _on_settings_changed(self, event):
        sub = subprocess.run('leader-get', capture_output=True)
        logging.info('leader-settings-changed for %s:\nout: %r\nerr: %r', self.unit.name, sub.stdout, sub.stderr)

    def _on_elected(self, event):
        sub = subprocess.run('leader-get', capture_output=True)
        logging.info('leader-elected for %s:\nout: %r\nerr: %r', self.unit.name, sub.stdout, sub.stderr)

I did see a leader-settings-change after upgrade-charm completed (which doesn't seem correct, but isn't strictly wrong nor should be happening often).

I also tested whether running `juju run --unit X -- leader-set leader_id=SAME_VALUE`

and I wasn't able to trigger a second leader-settings-changed event (so setting a field to the same value as it already has *shouldn't* trigger a leader-settings-changed event.)

I did also do the same thing as the linked charm where in update-status and in leader-elected it sets leader_id. In that case, I still don't see lots of calls to leader-settings-changed. (this is with a local test controller running a pre-2.9.30 Juju).
I'll try running it with 2.9.27 but I don't think we changed anything in this area.