Skip to content

GetAllImageDigestsFromRegistryAsync is suddenly extremely slow #1905

Closed

Description

@lbussell

In this dotnet-docker-nightly pipeline run it took 1hr15min, causing the pipeline to time out later in the run:

2025-12-19T01:01:15.0763844Z Querying registry for all image digests...
2025-12-19T02:15:43.0489446Z Checking digest for existing annotation: ...

Previously (in this pipeline run), it took less than one minute:

2025-12-10T21:56:14.9556032Z Querying registry for all image digests...
2025-12-10T22:19:31.3493702Z Checking digest for existing annotation: ...

The earliest occurrence of this behavior I could find is in https://dev.azure.com/dnceng/internal/_build/results?buildId=2861673&view=logs&j=739bb7ec-7296-5b40-7dff-ee3297bfdaa4&t=a08adfce-16dd-580a-541c-89ea6031d6c4 where it took 23 minutes. That is dotnet-docker commit db838f02ef8fb99154680b938054748dc856d8b9.

The cause is likely #1879.

Activity

  1. lbussell commented on Dec 23, 2025

    @lbussell
    MemberAuthor

    I profiled before/after #1879. There was not a meaningful impact to individual manifest queries outside of the P99 manifest query scenario. The P99 is caused by the first request to each registry. It's hard to tell why this got so slow all of a sudden.

    Metric Before #1879 After #1879 Difference
    Mean 117.6ms 128.7ms +9.4% slower
    P50 (median) 111ms 118ms +6.3% slower
    P90 150ms 137ms -8.7% faster
    P99 181ms 558ms +208.3% slower
    Min 86ms 79ms -8.1% faster
    Max 386ms 607ms +57.3% slower
  2. mthalman commented on Jan 5, 2026

    @mthalman
    Member

    Looking at the history of the nightly pipeline, I see there were a number of builds which failed during the Wait for Annotation Ingestion step with a 500 error. Here's the first instance of that: https://dev.azure.com/dnceng/internal/_build/results?buildId=2859897. So it's possible that all of these failures produced a big backlog of images that don't have annotations when they should. Because of the number of failed builds, this would be a larger set of images that need to be annotated than we would have normally. And so that may be the reason for hitting the timeout now.

  3. moved this from Backlog to In Progress in .NET Dockeron Jan 5, 2026
  4. added theissue type on Jan 5, 2026
  5. moved this from In Progress to Done in .NET Dockeron Jan 5, 2026
  6. added a commit that references this issue on Jan 5, 2026
    f136cec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions