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

Higher memory use in CI with 1.2.0 as base compiler #11316

Open
straight-shoota opened this issue Oct 14, 2021 · 8 comments
Open

Higher memory use in CI with 1.2.0 as base compiler #11316

straight-shoota opened this issue Oct 14, 2021 · 8 comments

Comments

@straight-shoota
Copy link
Member

straight-shoota commented Oct 14, 2021

I have created a branch to prepare master for 1.3-dev (https://github.com/crystal-lang/crystal/tree/ci/1.3-dev) including updates to 1.2.0 as base compiler for CI.
But there are errors in CI: https://app.circleci.com/pipelines/github/crystal-lang/crystal/7044/workflows/0dffd249-0e5a-44dd-a6f1-38476f2022b8
Looks like LLVM runs out of memory. It's inconsistent (which is not unlikely for such a failure). Do we need more memory on our CircleCI runners?

@beta-ziliani
Copy link
Member

beta-ziliani commented Oct 15, 2021

Does that mean 1.2.0 is consuming more memory? What could be the reason for that?

@straight-shoota
Copy link
Member Author

For all I know, 1.2.0 should maybe even use less memory due to #11167 and #11188.

@asterite
Copy link
Member

There's more code and more specs, so LLVM will need more memory for that.

@beta-ziliani
Copy link
Member

We're comparing the same set of specs, what changes is the base compiler, so it's about memory usage of the compiled specs with 1.1 vs 1.2

@asterite
Copy link
Member

Ah, you are right. But there has been many changes to the compiler, right? It's hard to track which of these introduces more memory allocations, either on the semantic pass or the codegen pass.

@straight-shoota
Copy link
Member Author

We'll have to look into that.

As an intermediary solution until we know what's causing the memory issues, we can just use a CI runner with more memory to get in business again.

@beta-ziliani
Copy link
Member

Yes, the point is knowing if there's something we should worry about. If our programs consume a bit more memory that's OK, but if they consume a lot more, then we should fix it.

@straight-shoota
Copy link
Member Author

straight-shoota commented Oct 18, 2021

I've added configuration for resource_class: large (with 8 GB memory instead of 6 GB) to #11317
CI workflow run: https://app.circleci.com/pipelines/github/crystal-lang/crystal/7058/workflows/8c38d619-9477-497e-b35f-d86a471f6f0d (Update: all green 🟢).

Related: crystal-lang/distribution-scripts#140

@straight-shoota straight-shoota changed the title CI failure with 1.2.0 as base compiler Higher memory use in CI with 1.2.0 as base compiler Oct 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants