Closed g11tech closed 3 months ago
Attention: Patch coverage is 75.00000%
with 2 lines
in your changes missing coverage. Please review.
Project coverage is 62.75%. Comparing base (
f29a6db
) to head (069ceb6
).
✔️ no performance regression detected
by benchmarkbot/action
Failed to obtain attester duty
agree with @nflaig , we need to figure out the root cause of the error by either getting more log at the beacon-node side or reproducing the issue
right, could be other errors coupled with this one causing sync and attester duties failure, will try to figure it out, most likely the BN api latency would be an issue because of epoch transition (just guessing), but in any case the duties apis should be retried atleast on next slot and not on next epoch.
will send followup PRs
actually this log using this fixed branch indicates that the attestation and sync participation which would "freeze" earlier till next epoch continues ( see timestamps), so the uncaught exception might have had some impact on the event loop although I am not fully sure of it
Jun-16 10:11:05.425[] info: Published attestations slot=1885855, index=50, count=1
Jun-16 10:11:14.402[] warn: Failed to get indices for pending pubkeys pending=1000 - getStateValidators failed with status 500: Internal server error
Error: getStateValidators failed with status 500: Internal server error
at ApiResponse.error (file:///usr/app/packages/api/src/utils/client/response.ts:164:12)
at ApiResponse.assertOk (file:///usr/app/packages/api/src/utils/client/response.ts:155:18)
at ApiResponse.value (file:///usr/app/packages/api/src/utils/client/response.ts:104:10)
at IndicesService.fetchValidatorIndices (file:///usr/app/packages/validator/src/services/indices.ts:132:112)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at IndicesService.pollValidatorIndicesInternal (file:///usr/app/packages/validator/src/services/indices.ts:122:35)
Jun-16 10:11:14.415[] error: Error on attestation aggregation selection slot=1885856 - submitBeaconCommitteeSelections failed with status 500: Internal server error
Error: submitBeaconCommitteeSelections failed with status 500: Internal server error
at ApiResponse.error (file:///usr/app/packages/api/src/utils/client/response.ts:164:12)
at ApiResponse.assertOk (file:///usr/app/packages/api/src/utils/client/response.ts:155:18)
at ApiResponse.value (file:///usr/app/packages/api/src/utils/client/response.ts:104:10)
at AttestationService.runDistributedAggregationSelectionTasks (file:///usr/app/packages/validator/src/services/attestation.ts:334:36)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Jun-16 10:11:14.418[] error: Failed to download attester duties epoch=58933 - getAttesterDuties failed with status 500: Internal server error
Error: getAttesterDuties failed with status 500: Internal server error
at ApiResponse.error (file:///usr/app/packages/api/src/utils/client/response.ts:164:12)
at ApiResponse.assertOk (file:///usr/app/packages/api/src/utils/client/response.ts:155:18)
at ApiResponse.value (file:///usr/app/packages/api/src/utils/client/response.ts:104:10)
at AttestationDutiesService.pollBeaconAttestersForEpoch (file:///usr/app/packages/validator/src/services/attestationDuties.ts:236:32)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at AttestationDutiesService.pollBeaconAttesters (file:///usr/app/packages/validator/src/services/attestationDuties.ts:183:7)
at async Promise.all (index 0)
at AttestationDutiesService.runDutiesTasks (file:///usr/app/packages/validator/src/services/attestationDuties.ts:144:5)
at Clock.runAtMostEvery (file:///usr/app/packages/validator/src/util/clock.ts:96:7)
Jun-16 10:11:14.424[] error: Failed to download attester duties epoch=58934 - getAttesterDuties failed with status 500: Internal server error
Error: getAttesterDuties failed with status 500: Internal server error
at ApiResponse.error (file:///usr/app/packages/api/src/utils/client/response.ts:164:12)
at ApiResponse.assertOk (file:///usr/app/packages/api/src/utils/client/response.ts:155:18)
at ApiResponse.value (file:///usr/app/packages/api/src/utils/client/response.ts:104:10)
at AttestationDutiesService.pollBeaconAttestersForEpoch (file:///usr/app/packages/validator/src/services/attestationDuties.ts:236:32)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at AttestationDutiesService.pollBeaconAttesters (file:///usr/app/packages/validator/src/services/attestationDuties.ts:183:7)
at async Promise.all (index 0)
at AttestationDutiesService.runDutiesTasks (file:///usr/app/packages/validator/src/services/attestationDuties.ts:144:5)
at Clock.runAtMostEvery (file:///usr/app/packages/validator/src/util/clock.ts:96:7)
Jun-16 10:11:14.428[] error: Failed to publish validator registrations to builder epoch=58933 - registerValidator failed with status 500: Internal server error
Error: registerValidator failed with status 500: Internal server error
at ApiResponse.error (file:///usr/app/packages/api/src/utils/client/response.ts:164:12)
at ApiResponse.assertOk (file:///usr/app/packages/api/src/utils/client/response.ts:155:18)
at registerValidator (file:///usr/app/packages/validator/src/services/prepareBeaconProposer.ts:105:68)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at Clock.runAtMostEvery (file:///usr/app/packages/validator/src/util/clock.ts:96:7)
Jun-16 10:11:14.431[] error: Failed to download SyncDuties epoch=59189 - getSyncCommitteeDuties failed with status 500: Internal server error
Error: getSyncCommitteeDuties failed with status 500: Internal server error
at ApiResponse.error (file:///usr/app/packages/api/src/utils/client/response.ts:164:12)
at ApiResponse.assertOk (file:///usr/app/packages/api/src/utils/client/response.ts:155:18)
at ApiResponse.value (file:///usr/app/packages/api/src/utils/client/response.ts:104:10)
at SyncCommitteeDutiesService.pollSyncCommitteesForEpoch (file:///usr/app/packages/validator/src/services/syncCommitteeDuties.ts:238:98)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at SyncCommitteeDutiesService.pollSyncCommittees (file:///usr/app/packages/validator/src/services/syncCommitteeDuties.ts:185:7)
at async Promise.all (index 0)
at SyncCommitteeDutiesService.runDutiesTasks (file:///usr/app/packages/validator/src/services/syncCommitteeDuties.ts:147:5)
at Clock.runAtMostEvery (file:///usr/app/packages/validator/src/util/clock.ts:96:7)
Jun-16 10:11:17.420[] info: Published attestations slot=1885856, index=38, count=1
Jun-16 10:11:29.511[] info: Published attestations slot=1885857, index=25, count=1
I would assume getting attester duties is just a pass through request to the beacon node as it does not require any threshold aggregation or cluster participants to be online.
Error: getAttesterDuties failed with status 500: Internal server error
Investigating this by looking at the vc logs does not make much sense imo, as charon does not return the reason why it failed with 500 status code.
Closed in favor of https://github.com/ChainSafe/lodestar/pull/6891
actually this log using this fixed branch indicates that the attestation and sync participation which would "freeze" earlier till next epoch continues ( see timestamps), so the uncaught exception might have had some impact on the event loop although I am not fully sure of it
@g11tech After debugging the issue, it's just a wrongly handled promise which has no side effect on anything else, opened a PR to properly handle it and avoid the uncaught exception.
fixes the following scenario where validator doesn't even perform attestations and sync duties for the indices it already knows for the epoch where this api errors