rack controller fails to register because of failure updating interfaces
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
Medium
|
Alberto Donato | ||
2.7 |
Fix Released
|
Medium
|
Alberto Donato |
Bug Description
Running a local development maas from master, I got into a situation where the rackd fails to register to regiond because of a duplicated interface name.
The error is as follows:
2020-02-17 08:54:35 maasserver.
2020-02-17 08:54:35 RegionServer,
2020-02-17 08:54:35 maasserver.
Traceback (most recent call last):
File "/snap/
File "/snap/
File "/snap/
result = result.
File "/snap/
return g.throw(self.type, self.value, self.tb)
--- <exception caught here> ---
File "/snap/
File "/snap/
result = inContext.theWork()
File "/snap/
File "/snap/
return self.currentCon
File "/snap/
return func(*args,**kw)
File "/snap/
return func(*args, **kwargs)
File "/snap/
result = func(*args, **kwargs)
File "/snap/
return func(*args, **kwargs)
File "/snap/
return func(*args, **kwargs)
File "/snap/
return func_outside_
File "/snap/
return func(*args, **kwargs)
File "/snap/
return func(*args, **kwds)
File "/snap/
File "/snap/
result = func(*args, **kwargs)
File "/snap/
return func(*args, **kwargs)
File "/snap/
return func(*args, **kwargs)
File "/snap/
return func_within_
File "/snap/
return func(*args, **kwds)
File "/snap/
File "/snap/
name, config, create_
File "/snap/
File "/snap/
*args, **kwargs
File "/snap/
return getattr(
File "/snap/
return self._create_
File "/snap/
obj = self.create(
File "/snap/
File "/snap/
return super().save(*args, **kwargs)
File "/snap/
File "/snap/
raise ValidationError
The issue is the mpqemubr0-dummy interface (created by multipass), which somehow now got a different MAC address (but still has the previous name).
In MAAS' database an interface already existed for the node with that name, but a different MAC. The current logic looks up the MAC, doesn't find it, so tries to create a new interface, but the name is duplicated, so the constraint fails.
We should rework the Node.update_
Related branches
- Alberto Donato (community): Approve
-
Diff: 76 lines (+35/-4)2 files modifiedsrc/maasserver/models/node.py (+10/-4)
src/maasserver/models/tests/test_node.py (+25/-0)
- Björn Tillenius: Approve
- MAAS Lander: Approve
- Newell Jensen (community): Approve
-
Diff: 76 lines (+35/-4)2 files modifiedsrc/maasserver/models/node.py (+10/-4)
src/maasserver/models/tests/test_node.py (+25/-0)
Changed in maas: | |
milestone: | none → 2.8.0b1 |
Changed in maas: | |
assignee: | nobody → Alberto Donato (ack) |
status: | Triaged → In Progress |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |