Liam-Sturge opened a new issue, #16613:
URL: https://github.com/apache/tvm/issues/16613
### The Problem
Intermittently, when running `./build_image.sh cpu`, the function
`detect_llvm_version()` does not run correctly due to exceeding Github API rate
limits. This then causes a complete failure as the script attempts to use Curl
to fetch the LLVM project from Github with the following syntax
`llvm-project-${LLVM_VERSION}.src.tar.xz`. As no version is set, an invalid URL
is passed to Curl and an empty file is downloaded. In the logs when building a
`package-cpu` Docker image the following error is seen:
```
=> ERROR [ 7/20] RUN bash /install/centos_build_llvm.sh 16.0
------
[ 7/20] RUN bash /install/centos_build_llvm.sh 16.0:
unxz: llvm-project-.src.tar.xz: File format not recognized
```
### Additional Details
The Github API rate limit error looks like this:
> ```{"message":"API rate limit exceeded for <IP ADDRESS>. (But here's the
good news: Authenticated requests get a higher rate limit. Check out the
documentation for more
details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}```
The error can be replicated after the rate limit is exceeded by navigating
to the LLVM URL directly:
https://api.github.com/repos/llvm/llvm-project/releases?per_page=100
In the `./build_image.sh` script we are not using an authenticated API
request, so the rate is set very low (<50 in given timeout period).
### Flakiness
Intermittent and more likely to impact CI running regularly, rather than an
individual.
### Suggested Solution
Don't use the Github API to detect the LLVM version. List the remote tags of
the repo using `git ls-remote` instead. A Github support discussion
[here](https://github.com/orgs/community/discussions/44515#discussioncomment-4795475)
suggests
> Git operations do not consume part of your API rate limit, as there are no
API calls made to GitHub.com via the git client.
### Triage
Please refer to the list of label tags
[here](https://github.com/apache/tvm/wiki/Issue-Triage-Labels) to find the
relevant tags and add them below in a bullet format (example below).
* needs-triage
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]