Two different rack controllers register with the same system_id

Hi,
using maas version 3.0.0
I have an issue where two separate rack controllers (running in different locations in different subnets) for some reason register with the exact same system_id.

product_uuid is different on both machines (as I thought maybe there is a collision there).

cat /sys/class/dmi/id/product_uuid
4c4c4544-0048-3110-8032-c4c04f304433
cat /sys/class/dmi/id/product_uuid
4c4c4544-004e-5710-8035-b3c04f465732

I tried to delete both rack controllers. Completely removed them from maas region controller.
Then I registered first one. It registered with a new system_id now.
Then I registered a second one. And it took the same system_id as a first one. And now first rack controller is gone and instead it is showing second rack controller instead of first one.

MAC addresses on both machines are different.

What else does MAAS is using to id the system? As obviously there is some sort of collision, but I cannot find where it is coming from.

Thank you.

Hi,

Reading the backend code: RackControllers inherits from Node Nodes uses the function generate_node_system_id to generate random system_ids .

As I see this function does not use any information from the machine. Also, this function checks if the generated system_id is already used by other node, also system_id is defined as unique.

So my first guess is this is not a collision issue, may you try again and add more information about how to reproduce it?

Thanks

1 Like

Hi @dmascialino,

Yeah, I looked at that code as well. So I am really puzzled why second rack controller picks the same system_id. Its like somehow it checks if maybe it is already registered and somehow incorrectly sees another rack controller and thinks it should use the same system_id?

I can only reproduce this problem with those two specific rack controllers. I have a total of 8 rack controllers talking to one region controller. Of those 8, only those two have that issue.

I tried to wipe them clean, and then removed both from region, and then when I add them back, second one always grabs the same system_id. It is extremely odd.

Is there a check that rack controller does to see if it is already registered with region? Maybe that explain this problem.