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

Note to self: why we have a global lock on the integration tests #589

Open
DilumAluthge opened this issue Dec 18, 2024 · 0 comments
Open

Comments

@DilumAluthge
Copy link
Member

There's a global lock on the integration tests.

Background:

The integration tests for AutoMerge do a lot of actions such as "create a PR". GitHub applies secondary rate limits to these "create content" API calls (https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#about-secondary-rate-limits) - these secondary rate limits are in addition to the regular ("primary") rate limits. If we are making too many of these API calls at the same time, then GitHub will further throttle us as an abuse prevention mechanism.

In the past, I have noticed that if we run two (or more) "integration test" jobs at the same time, we are more likely to hit these throttling. Therefore, we enforce a global lock on the integration tests. This means that if one integration tests job is running, all other integration tests jobs must wait. So in this case, there may be an existing integration job running on the master commit, or maybe on the tag. So your PR's integration job is stuck waiting for that job to finish so that your PR can take the global lock.

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

No branches or pull requests

1 participant