Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH Actions: work around intermittent apt-get errors #322

Merged
merged 1 commit into from
Apr 24, 2024

Conversation

jrfnl
Copy link
Collaborator

@jrfnl jrfnl commented Apr 24, 2024

Okay, so apparently, there is a long-standing bug in the Microsoft package deploy process which caused apt-get update to fail in the first half hour after Microsoft has deployed a package.

The failure looks like this:

E: Failed to fetch https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/InRelease  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)

As this only happens intermittently (after a MS package deploy), the chance of running into this bug are slim, but guess what: today I ran into it.

This change to the workflow is intended to prevent the next person running into this issue from having to waste time on figuring this out.

By splitting the "Install xmllint" step into two steps: one doing the apt-get update and one doing the actual install and making the first step one which is allowed to continue-on-error, this issue should hopefully not crop up anymore.

Any errors in the apt-get update step will now be ignored and as most errors which could potentially come from that step are irrelevant for the rest of the job anyway, this is fine. If a relevant error would be surfaced, the next step (the xmllint install), will fail the job anyway.

Refs:

Okay, so apparently, there is a long-standing bug in the Microsoft package deploy process which caused `apt-get update` to fail in the first half hour after Microsoft has deployed a package.

The failure looks like this:
```
E: Failed to fetch https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/InRelease  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
```

As this only happens intermittently (after a MS package deploy), the chance of running into this bug are slim, but guess what: today I ran into it.

This change to the workflow is intended to prevent the next person running into this issue from having to waste time on figuring this out.

By splitting the "Install xmllint" step into two steps: one doing the `apt-get update` and one doing the actual install and making the first step one which is allowed to `continue-on-error`, this issue should hopefully not crop up anymore.

Any errors in the `apt-get update` step will now be ignored and as most errors which could potentially come from that step are irrelevant for the rest of the job anyway, this is fine.
If a relevant error would be surfaced, the next step (the xmllint install), will fail the job anyway.

Refs:
* actions/runner-images#3410
* dotnet/core#4167
@jrfnl jrfnl requested a review from sirbrillig April 24, 2024 11:16
Copy link
Owner

@sirbrillig sirbrillig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fascinating. Thanks for spotting it and coming up with a workaround!

@sirbrillig sirbrillig merged commit bb070b8 into 2.x Apr 24, 2024
56 checks passed
@sirbrillig sirbrillig deleted the feature/ghactions-xmllint-bypass-apt-get-update branch April 24, 2024 14:41
@jrfnl
Copy link
Collaborator Author

jrfnl commented Apr 24, 2024

@sirbrillig Yes, this was an interesting WTF indeed.

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.

2 participants