Skip to content

fix(sitemap): pre-warm HL-builder cache to avoid concurrent getSpecs races - #984

Merged
Flotapponnier merged 1 commit into
mainfrom
fix/sitemap-prewarm-hl-cache
Jul 8, 2026
Merged

fix(sitemap): pre-warm HL-builder cache to avoid concurrent getSpecs races#984
Flotapponnier merged 1 commit into
mainfrom
fix/sitemap-prewarm-hl-cache

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Follow-up hotfix on #980.

The new isHlBuilderSlug() call inside Promise.all over providerSlugs (~100 entries) triggered ~100 concurrent getSpecs() reads because the internal cache was still null on every callsite. That exhausted the fd pool and /sitemap.xml timed out on the deploy-time smoke fetch:

[smoke] fetching https://openchainbench.com/sitemap.xml
[DOMException [AbortError]: This operation was aborted]

Fix: pre-warm the cache with a single throwaway call before the Promise.all.

Merging direct to main (hotfix path per AGENTS.md) to unblock the prod deploy that's currently rolled back.

…ecs races

Follow-up on #980. Introducing isHlBuilderSlug() inside a Promise.all
over providerSlugs (~100 entries) triggered ~100 concurrent
getSpecs() reads on the first prod build because the cache inside
isHlBuilderSlug was still null on every callsite. That exhausted the
file-descriptor pool during buildFullSitemap and made /sitemap.xml
time out on the deploy-time smoke fetch:

  [smoke] fetching https://openchainbench.com/sitemap.xml
  [DOMException [AbortError]: This operation was aborted]

Fix: warm the cache with a single throwaway call before the
Promise.all. Subsequent calls hit the cached Set immediately.
@Flotapponnier
Flotapponnier merged commit 4d61155 into main Jul 8, 2026
1 check passed
@Flotapponnier
Flotapponnier deleted the fix/sitemap-prewarm-hl-cache branch July 17, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant