Open
Description
I think this if condition is not correct.
I'm using the ceph-osd
charm which fails the mon-relation-changed
hook saying that there is no valid address.
Here's the logs:
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 Traceback (most recent call last):
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/mon-relation-changed", line 978, in <module>
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 hooks.execute(sys.argv)
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/charmhelpers/core/hookenv.py", line 963, in execute
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 self._hooks[hook_name]()
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/mon-relation-changed", line 730, in mon_relation
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 emit_cephconf()
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/mon-relation-changed", line 506, in emit_cephconf
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 context = get_ceph_context(upgrading)
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/mon-relation-changed", line 470, in get_ceph_context
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 dynamic_ipv6_address = get_ipv6_addr()[0]
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/charmhelpers/contrib/network/ip.py", line 347, in iface_sniffer
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 return f(*args, **kwargs)
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/charmhelpers/contrib/network/ip.py", line 415, in get_ipv6_addr
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 raise Exception("Interface '%s' does not have a scope global "
2024-02-29 14:47:45 WARNING unit.ceph-osd/0.mon-relation-changed logger.go:60 Exception: Interface 'br-ens2' does not have a scope global non-temporary ipv6 address.
2024-02-29 14:47:45 ERROR juju.worker.uniter.operation runhook.go:180 hook "mon-relation-changed" (via explicit, bespoke hook script) failed: exit status 1
2024-02-29 14:47:45 INFO juju.worker.uniter resolver.go:161 awaiting error resolution for "relation-changed" hook
The interface the logs refer to, has a global dynamic
, a global
and a link-local
address.
get_ipv6_addr
was correctly excluding the link-local one; the condition dynamic_only is weirdly defaulted to True
(which I agree with #554 should not be) and the function should've returned the global dynamic
one.
The original conditions allows the address only if either we're getting dynamic and non-dynamic addresses, or if we're only getting dynamic ones they must have the eui 64 mac at the end which should only be in some SLAAC assigned ones, while it breaks DHCPv6.
Metadata
Assignees
Labels
No labels
Activity