-
Notifications
You must be signed in to change notification settings - Fork 90
test: Performance test for Aggregation Slot #1128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
|
||
| for (int i = 0; i < validatorsPerSlot; i++) { | ||
| final int validatorIdx = (int) (slot * validatorsPerSlot + i); | ||
| if (validatorIdx >= NUM_VALIDATORS) break; |
Check warning
Code scanning / CodeQL
Useless comparison test Warning test
this condition
Test is always false, because of
this condition
Test is always false, because of
this condition
|
|
||
| for (int i = 0; i < validatorsForSlot; i++) { | ||
| final int validatorIdx = (int) (slot * validatorsPerSlot + i); | ||
| if (validatorIdx >= NUM_VALIDATORS) break; |
Check warning
Code scanning / CodeQL
Useless comparison test Warning test
this condition
Test is always false, because of
this condition
Test is always false, because of
this condition
| for (int i = 0; i < validatorsPerSlot; i++) { | ||
| final int validatorIdx = (int) (slot * validatorsPerSlot + i); | ||
| if (validatorIdx >= NUM_VALIDATORS) break; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Validator Index Calculation Fails for Uneven Divisions
The validator index calculation in testAggregationSlotBatchedLoad() does not account for remaining validators when NUM_VALIDATORS is not evenly divisible by 32. With NUM_VALIDATORS=30000 and 32 slots, validatorsPerSlot=937 with 16 remaining validators. The calculation validatorIdx = slot * validatorsPerSlot + i for slot 31 produces indices up to 29963, missing the last 37 validators (29964-30000). The test will not cover all 30000 validators as intended.
| for (int i = 0; i < validatorsForSlot; i++) { | ||
| final int validatorIdx = (int) (slot * validatorsPerSlot + i); | ||
| if (validatorIdx >= NUM_VALIDATORS) break; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Validator Index Mismatch in Test
The validator index calculation in testAggregationSlotWithLimitedConcurrency() is inconsistent with the validator count for the last slot. While validatorsForSlot correctly accounts for remaining validators (line 326-327), the validatorIdx calculation at line 330 uses slot * validatorsPerSlot + i which does not account for the remaining validators. For slot 31, this produces indices 29027-29979, when it should produce 29027-29999. This causes 20 validators to be omitted from testing.
PR Description
Performance test to investigate timeouts of aggregation slot timeouts in Teku.
Note
Adds a 30k-validator aggregation-slot signing load test (batched, concurrent, throttled) and includes Teku metrics dependencies.
AggregationSlotLoadTestto stress Eth2AGGREGATION_SLOTsigning for 30,000 validators./api/v1/eth2/sign/{pubkey}requests and verifies signatures against local BLS.tech.pegasys.teku.internal:metricsand itstest-fixturestoacceptance-tests.metricsin the managedtech.pegasys.teku.internaldependency set ingradle/versions.gradle.Written by Cursor Bugbot for commit f6beb1a. This will update automatically on new commits. Configure here.