Skip to content

Race condition in providing public key output #93

Description

In https://github.com/qualcomm-linux/pkg-android-platform-tools/actions/runs/30725027432 we have the following step output generated for qli-ci.sources:

sudo sh -c 'cat > /etc/apt/sources.list.d/qli-ci.sources' <<END
Types: deb deb-src
URIs: https://deb.debusine.qualcomm.com/qualcomm/qli-ci-gh-1257888834-30725027432-1-0/
Suites: forky
Components: main contrib non-free non-free-firmware
Signed-By:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 .
 .
 =twTO
 -----END PGP PUBLIC KEY BLOCK-----
END

Observation: we did get some output from the GET on signing-keys.asc, rather than a 401, 403 or 404, so authentication does appear to be working. When I fetch signing-keys.asc later using curl and the service account credentials, I do get a complete file instead of this broken one. I think this is a race. The debian_pipeline workflow calls "Start workflow to update repository indexes" which appears as a separate update_suites workflow, and we're only waiting on the former. Since I introduced websocket-based notifications, I think we now win the race, before update_suites has run.

In the short term, polling for a valid pubic key might be a suitable workaround similar to our workaround for https://salsa.debian.org/freexian-team/debusine/-/work_items/1560.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions