Skip to content

e2e/qa: check per-type device capacity in ValidDevices#3563

Merged
packethog merged 2 commits intomainfrom
ss/stoic-meninsky-c4cc4f
Apr 21, 2026
Merged

e2e/qa: check per-type device capacity in ValidDevices#3563
packethog merged 2 commits intomainfrom
ss/stoic-meninsky-c4cc4f

Conversation

@packethog
Copy link
Copy Markdown
Contributor

Summary

  • QA tests that pin to an explicit device (e.g. TestQA_AllDevices_UnicastConnectivity) were failing on devices that had free aggregate slots but zero free slots in a per-type bucket (e.g. max_unicast_users=29 / unicast_users_count=29 while max_users=128 / users_count=61).
  • qa.Test.ValidDevices only consulted the aggregate MaxUsers/UsersCount counters, so these devices passed the capacity check and failed later at connect time with an onchain cap error.
  • Extends qa.Device with the three per-type counters already exposed by the serviceability SDK (unicast, multicast publisher, multicast subscriber), adds a DeviceUserType enum, and makes ValidDevices take the user type so it enforces both the type-specific and aggregate buckets.

Related: builds on the auto-select fix from #3550, which solved the same class of problem for callers that don't specify a device code.

Testing Verification

  • go build -tags=qa ./e2e/... clean
  • go vet -tags=qa ./e2e/... clean
  • Ran through the failure scenario from infra run 24744593257: with the fix, ValidDevices(DeviceUserTypeUnicast, 2, false) filters out the saturated nyc001-dz002 entry that previously leaked through.

ValidDevices previously filtered only on aggregate MaxUsers/UsersCount,
which masked devices that were full on a type-specific counter but had
free aggregate slots. A device with max_unicast_users=29 and
unicast_users_count=29 could still pass the check with max_users=128 and
users_count=61, so qa tests that pinned to such a device hit the onchain
unicast cap at connect time.

Extend qa.Device with the three per-type counters exposed by the
serviceability SDK, add a DeviceUserType enum, and make ValidDevices
take the user type so it enforces both the type-specific and aggregate
buckets. Update the one existing caller (qa_alldevices_unicast_test.go)
to pass DeviceUserTypeUnicast.
@packethog packethog requested a review from snormore April 21, 2026 22:00
@packethog packethog self-assigned this Apr 21, 2026
@packethog packethog marked this pull request as ready for review April 21, 2026 22:01
@packethog packethog enabled auto-merge (squash) April 21, 2026 22:15
quay.io 502s have been failing e2e runs (e.g. infra run 24748524460).
Mirror quay.io/prometheus/prometheus:v2.54.1 at
ghcr.io/malbeclabs/dz-e2e/prometheus:v2.54.1 and point both pull paths
at the mirror.
@packethog packethog merged commit 3ed6a91 into main Apr 21, 2026
37 of 44 checks passed
@packethog packethog deleted the ss/stoic-meninsky-c4cc4f branch April 21, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants