You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Probe all standalone assignments before claiming a test port slot #2160
The merged auto-slot probe still checks only TestPortAssignment.GarnetTest plus the cluster node range.
ArePortsFree() probes GarnetTest + offset, but does not probe the other standalone assignments such as GarnetTestAlternate, GarnetTestAcl, GarnetTestCollections, GarnetTestComplexString, GarnetTestExtensions, GarnetTestRangeIndex, GarnetTestScripting, GarnetTestVectorSet, and GarnetTestBfTreeInterop.
A stranded server on one of those non-default standalone ports can therefore leave ArePortsFree(slot) returning true. auto may claim the slot and the corresponding test project later collides when it binds its shifted assignment.
Suggested fix:
iterate all TestPortAssignment values in ArePortsFree() and require every shifted standalone assignment to be free;
add a focused regression with one non-default assignment occupied, proving auto rejects that slot.
This was the remaining review concern on #2151 when it merged.
Thanks for folding this into #2162. I checked the merged change: SlotPorts now enumerates every TestPortAssignment plus the full cluster node band, ArePortsFree probes that complete set, and the regression explicitly occupies GarnetTestAlternate to prove a non-default standalone assignment blocks the slot. That resolves the follow-up completely.
Activity
Probe every reserved port on every bound address before claiming a slot
sylvesterkaczmarek commentedon Sep 23, 2026
Thanks for folding this into #2162. I checked the merged change: SlotPorts now enumerates every TestPortAssignment plus the full cluster node band, ArePortsFree probes that complete set, and the regression explicitly occupies GarnetTestAlternate to prove a non-default standalone assignment blocks the slot. That resolves the follow-up completely.