Astute must compare a sets of UIDs when collect data from netprobe.py
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Fix Committed
|
High
|
Vladimir Sharshov |
Bug Description
For some reasons netprobe.py can provide an extra remote uids and Astute must ignore unknown uids when computes a status of network discowering.
Steps to reproduce:
1. Combine any tagged network with any untagged on one interface.
2. Run net_check procedure on a real hardware.
3. Expected result: all ok; real result: verify failed.
Because a NIC driver or NIC itself does not clear buffer between two frames, in case your frame is shorter than the previous one, when you collect raw data from socket, you can get a tail of the previous frame.
In our case netprobe.py does not manage a length of encapsulated data correctly and when it gets untagged frame just after tagged, it gets last four bytes of tagged frame in addition to untagged data.
And because we send UID at the end of our custom frame, netprobe.py recognize such extra data as a new UID and provide this information to Astute. In an attached snapshot you can see that for cluster with two nodes (uids 7 and 8) netprobe.py returns back a hash with UIDs ("6", "7", "7th 7") and Astute marks this link as failed link.
Broken line is:
https:/
Good idea is to use Set(known_
Changed in fuel: | |
importance: | Critical → High |
tags: | added: low-hanging-fruit |
Changed in fuel: | |
assignee: | nobody → Vladimir Sharshov (vsharshov) |
Changed in fuel: | |
milestone: | 4.1 → 5.0 |
description: | updated |
Changed in fuel: | |
status: | Incomplete → Triaged |
How we can reproduce this behavior?
I do not find any errors in logs and description with a potencial solution is useful, but without data about nature of bugs and steps to check /reproduce this i could not do anythings.
Please provide more information, thanks!