[POC] Improve select and selectable to return same priority event by event happen time. #981
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Improve select and selectable to return same priority event by event happen time.
Why I did it
Fix issue sonic-net/sonic-buildimage#20941
selectable sort algorithm has 2 issue:
How I did it
Change selectable sort algorithm:
Work item tracking
How to verify it
Pass all test cases.
Pass all sonic-mgmt test with this PR: sonic-net/sonic-buildimage#21875
Manually build a POC and verify with following test steps:
sudo config vlan add 4094
sudo config vlan member add 4094 Ethernet64
sudo kill -s SIGSTOP $(pgrep -f /usr/bin/orchagent)
sudo config vlan member del 4094 Ethernet64
sudo config vlan del 4094
sudo truncate -s 0 /var/log/syslog
sudo kill -s SIGCONT $(pgrep -f /usr/bin/orchagent)
sudo cat /var/log/syslog
Result:
// VLAN_MEMBER delete event happen first and pop first:
2025 Feb 27 02:06:51.606321 vlab-01 NOTICE swss#orchagent: :- removeVlanMember: Remove member Ethernet64 from VLAN Vlan4094 lid:ffe vmid:2700000000069e
2025 Feb 27 02:06:51.606687 vlab-01 NOTICE swss#orchagent: :- flushFdbEntries: flush key: SAI_OBJECT_TYPE_FDB_FLUSH:oid:0x21000000000000, fields: 3
2025 Feb 27 02:06:51.606769 vlab-01 NOTICE swss#orchagent: :- recordFlushFdbEntries: flush key: SAI_OBJECT_TYPE_FDB_FLUSH:oid:0x21000000000000, fields: 3
2025 Feb 27 02:06:51.689459 vlab-01 NOTICE swss#orchagent: :- removeVlan: Remove VLAN Vlan4094 vid:4094
Which release branch to backport (provide reason below if selected)
Description for the changelog
Improve select and selectable to return same priority event by event happen time.
Link to config_db schema for YANG module changes
A picture of a cute animal (not mandatory but encouraged)