From bf08852482389a057b5316e2418c61bc9ac9008c Mon Sep 17 00:00:00 2001 From: harkamal Date: Sat, 7 Sep 2024 20:08:10 +0530 Subject: [PATCH] resolve availability when datacolumns are downloaded and matched --- .../src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/beacon-node/src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts b/packages/beacon-node/src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts index 607bfbdc0934..e2c6da140d36 100644 --- a/packages/beacon-node/src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts +++ b/packages/beacon-node/src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts @@ -289,6 +289,15 @@ export async function unavailableBeaconBlobsByRoot( ? {blocks: [unavailableBlockInput], pendingDataColumns: neededColumns} : null ); + + // don't forget to resolve availability as the block may be stuck in availability wait + if (availableBlockInput !== undefined && availableBlockInput.type === BlockInputType.availableData) { + const {blockData} = availableBlockInput; + if (blockData.fork !== ForkName.peerdas) { + throw Error(`unexpected blockData fork=${blockData.fork} returned by matchBlockWithDataColumns`); + } + resolveAvailability(blockData); + } } } else { throw Error(`Invalid cachedData fork=${cachedData.fork} for unavailableBeaconBlobsByRoot`);